我有一个数据框:
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
产生 Dataframe 输出:
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()函数。
3条答案
按热度按时间bd1hkmkf1#
对于
stack
/unstack
和eval
:输出:
7ivaypg92#
您可以只执行所需的计算-即
(df['A'] * df['B']).div(2)
,然后将值赋给原始DataFrame中的新列。2izufjch3#
下面是另一种方法:
输出: