gpt4 book ai didi

python - Pandas 在groupby中表示跨行和列

转载 作者:行者123 更新时间:2023-11-28 19:53:27 26 4
gpt4 key购买 nike

我有一个 dataframe,我想对行和列进行平均并按 Person 分组。

通常我可以做 .mean().mean(axis=1),但是,我的数据有几个 NaN 值,所以此方法对具有 NaN

的行应用不适当的权重
My code:
import pandas as pd
import numpy as np
df = pd.DataFrame(data=[[1,2,np.nan, 'Person A'],
[1,2,3, 'Person B'],
[2,np.nan,5,'Person B'],
[4,5,7, 'Person A']],
columns=['A', 'B','C', 'Person'])

df = df.groupby('Person').mean()

print df.mean(axis=1)

输出:

Person
Person A 4.333333
Person B 2.500000

期望的输出:

Person
Person A 3.8
Person B 2.6

最佳答案

df.set_index('Person').stack().groupby(level=0).mean().to_frame()

输出:

Person
Person A 3.8
Person B 2.6
dtype: float64

df.melt(id_vars='Person').groupby('Person')['value'].mean().to_frame()

输出:

Person
Person A 3.8
Person B 2.6
Name: value, dtype: float64

关于python - Pandas 在groupby中表示跨行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44502713/

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