gpt4 book ai didi

python - 列出 pandas 数据框中每组的唯一值计数

转载 作者:行者123 更新时间:2023-11-30 21:53:45 25 4
gpt4 key购买 nike

我是 pandas 和 python 的新手。

我正在尝试按一列对项目进行分组,并列出每组数据框中的信息。

我的数据框:

        B          C        D          E              F
1 Honda USA 2000 Washington New
2 Honda USA 2001 Salt Lake Used
3 Ford Canada 2005 Washington New
4 Toyota USA 2010 Ney York Used
5 Honda USA 2001 Salt Lake Used
6 Honda Canada 2011 Salt Lake Crashed
7 Ford Italy 2014 Rome New

我正在尝试按列 B 对我的数据框进行分组并列出有多少 C , D , E , F列值位于 B 组中。例如,我们在 B 列中看到有 4 Honda我将其组合在一起。然后我想列出以下信息 - USA(3), Canada(1), 2000(1),2001(2), 2011(1), Washington(1), Salt Lake(3), New(1), Used(2), Crashed(1)并对 B 列中的每个组(汽车品牌)执行相同的操作:

        Car         Country        Year        City             Condition
1 Honda(4) USA(3) 2000(1) Washington(1) New(1)
Canada(1) 2001(2) Salt Lake(3) Used(2)
2011(1) Crashed(1)

2 Ford(2) Canada(1) 2005(5) Washington(1) New(2)
Italy(1) 2014(1) Rome(1)

...

到目前为止我已经尝试过:

df.groupby(['B'])

这给了我<pandas.core.groupby.generic.DataFrameGroupBy object at 0x11d559080>

此时,我不确定在对列 B 进行分组后应该如何编码以继续获得所需的结果.

感谢您的建议。

最佳答案

您需要带有自定义函数的 lambda 函数,以便使用 Series.value_counts 单独处理每一列。然后将索引值与 Series 计数值连接在一起:

def f(x):
x = x.value_counts()
y = x.index.astype(str) + '(' + x.astype(str) + ')'
return y.reset_index(drop=True)
df1 = df.groupby(['B']).apply(lambda x: x.apply(f)).reset_index(drop=True)
print (df1)
B C D E F
0 Ford(2) Italy(1) 2014(1) Washington(1) New(2)
1 NaN Canada(1) 2005(1) Rome(1) NaN
2 Honda(4) USA(3) 2001(2) Salt Lake(3) Used(2)
3 NaN Canada(1) 2011(1) Washington(1) Crashed(1)
4 NaN NaN 2000(1) NaN New(1)
5 Toyota(1) USA(1) 2010(1) Ney York(1) Used(1)

关于python - 列出 pandas 数据框中每组的唯一值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59542245/

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