列出熊猫数据框中每组的唯一值计数

乔纳斯·帕拉基奥尼斯(Jonas Palachionis)

我是熊猫和蟒蛇的新手。

我试图将项目按一列分组,并按组列出数据框中的信息。

我的数据框:

        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和列表多少CDEF列值的组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>

在这一点上,我不确定在对column进行分组后应该如何继续向前编码以获得所需的结果B

谢谢你的建议。

耶斯列尔

您需要带有自定义函数的lambda函数,以分别处理每个列Series.value_counts,然后将index的值连接到count的值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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章