gpt4 book ai didi

python - aggfunc 中具有不同条件的 Pandas 数据透视表

转载 作者:行者123 更新时间:2023-12-01 00:02:50 25 4
gpt4 key购买 nike

假设我有 my_df:

my_df = pd.DataFrame({'X': ['a', 'a', 'b', 'b'], 'Y1': [1, 2, 3, 4], 'Y2': [1, 2, 3, 4], 'Z': [1, 0, 1, 0]})

my_df
X Y1 Y2 Z
0 a 1 1 1
1 a 2 2 0
2 b 3 3 1
3 b 4 4 0

我正在寻找一种在aggfunc中每列可能具有不同条件的情况下使用pivot_table的方法。举个例子,假设我想按 X 对数据进行分组并获取平均值。对于 Y1 我想应用一个简单的 mean 聚合,而对于 Y2 我想应用一个 mean聚合条件为 Z==1。在这种情况下的输出将是:

    Y1  Y2
X
a 1.5 1
b 3.5 3

如何调整以下代码以适应这种情况?

my_df.pivot_table(index = 'X', aggfunc={'Y1': 'mean', 'Y2': 'mean'})

最佳答案

How can I adjust the following code to accommodate the condition?

一种方法是屏蔽Y2写入Z列,然后进行透视

(my_df.assign(Y2=my_df['Y2'].where(my_df['Z'].eq(1)))
.pivot_table(index = 'X', aggfunc={'Y1': 'mean', 'Y2': 'mean'}))
<小时/>
    Y1   Y2
X
a 1.5 1.0
b 3.5 3.0

关于python - aggfunc 中具有不同条件的 Pandas 数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60211951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com