Python 对 0 级列执行自定义计算

标签 python pandas dataframe levels

我有一个数据框:

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() 与函数一起使用。谢谢。

最佳答案

stack/unstackeval :

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/

相关文章:

python - 使用python从缩短的url中获取完整的url

python - 如何删除整数类型列中的最后两位数字?

python - 温度传感器线性组合曲线拟合

python - 需要一个条件语句来填充基于字符串的列

python - 将使用 pandas group by 计算的总和应用于组的所有元素

pandas - 如何在重新采样数据帧后删除不需要的列

python - 文本摘要 : failed with exit code 127//windows 10//pdftotext

python - 类型错误 : "NoneType" object is not callable in Google Colab

python - 输入层的 TensorFlow Keras 维度误差

excel - 由于依赖问题,无法使用spark-excel导出数据框