gpt4 book ai didi

python - 使用 groupby 对多列进行 Value_counts

转载 作者:太空狗 更新时间:2023-10-30 02:07:19 25 4
gpt4 key购买 nike

我需要一些 Pandas 方面的帮助。

我有以下数据框:

df = pd.DataFrame({'1Country': ['FR', 'FR', 'GER','GER','IT','IT', 'FR','GER','IT'],
'2City': ['Paris', 'Paris', 'Berlin', 'Berlin', 'Rome', 'Rome','Paris','Berlin','Rome'],
'F1': ['A', 'B', 'C', 'B', 'B', 'C', 'A', 'B', 'C'],
'F2': ['B', 'C', 'A', 'A', 'B', 'C', 'A', 'B', 'C'],
'F3': ['C', 'A', 'B', 'C', 'C', 'C', 'A', 'B', 'C']})

screenshot

我正在尝试在前两列 1Country2City 上执行 groupby 并在列上执行 value_counts F1F2。到目前为止,我一次只能在 1 列上执行 groupby 和 value_counts

df.groupby(['1Country','2City'])['F1'].apply(pd.Series.value_counts)

我怎样才能对多个列执行 value_counts 并得到一个 datframe 作为结果?

最佳答案

您可以使用 agg,按照以下几行:

df.groupby(['1Country','2City']).agg({i:'value_counts' for i in df.columns[2:]})

F1 F2 F3
FR Paris A 2.0 1.0 2.0
B 1.0 1.0 NaN
C NaN 1.0 1.0
GER Berlin A NaN 2.0 NaN
B 2.0 1.0 2.0
C 1.0 NaN 1.0
IT Rome B 1.0 1.0 NaN
C 2.0 2.0 3.0

关于python - 使用 groupby 对多列进行 Value_counts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010388/

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