我正在尝试计算数据框中每种类型的行的重复项。例如,假设我在熊猫中有一个数据框,如下所示:
df = pd.DataFrame({'one': pd.Series([1., 1, 1]),
'two': pd.Series([1., 2., 1])})
我得到一个看起来像这样的df:
one two
0 1 1
1 1 2
2 1 1
我想第一步是找到所有不同的唯一行,我这样做是:
df.drop_duplicates()
这给了我以下df:
one two
0 1 1
1 1 2
现在,我想从上面的df([1 1]和[1 2])中获取每一行,并计算出初始df中每行的次数。我的结果看起来像这样:
Row Count
[1 1] 2
[1 2] 1
我应该怎么做最后一步?
编辑:
这是一个更大的示例,它更加清楚:
df = pd.DataFrame({'one': pd.Series([True, True, True, False]),
'two': pd.Series([True, False, False, True]),
'three': pd.Series([True, False, False, False])})
给我:
one three two
0 True True True
1 True False False
2 True False False
3 False False True
我想要一个告诉我的结果:
Row Count
[True True True] 1
[True False False] 2
[False False True] 1
您可以groupby
在所有列上调用size
索引来指示重复的值:
In [28]:
df.groupby(df.columns.tolist(),as_index=False).size()
Out[28]:
one three two
False False True 1
True False False 2
True True 1
dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句