我有一个数据框:
import pandas as pd
df = pd.DataFrame({
('A', 'a'): [1, 2, 3],
('A', 'b'): [4, 5, 6],
('B', 'a'): [7, 8, 9],
('B', 'b'): [10, 11, 12],
})
df
我想对每个零级别中的每一列执行定义的计算,并输出另一个零级别标签“C”。
我想做“A”*“B”/2
产生数据帧输出:
df = pd.DataFrame({
('A', 'a'): [1, 2, 3],
('A', 'b'): [4, 5, 6],
('B', 'a'): [7, 8, 9],
('B', 'b'): [10, 11, 12],
('C', 'a'): [3.5, 8, 13.5],
('C', 'b'): [20, 27.5, 36],
})
df
我最初的思考过程是在 level=0、axis=1 上执行 .groupby,然后将 .apply() 与函数一起使用。谢谢。
最佳答案
out = df.stack().eval("C = A * B / 2").unstack()
输出:
print(out)
A B C
a b a b a b
0 1 4 7 10 3.5 20.0
1 2 5 8 11 8.0 27.5
2 3 6 9 12 13.5 36.0
关于Python 对 0 级列执行自定义计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75688102/