新列显示唯一行出现的次数



我试图弄清楚如何使用Pandas添加一个显示唯一行出现次数的新列,然后删除任何重复的列。我可以在不使用pandas的情况下得到接近这个输出:

sort <inputfile | uniq -c 

或通过excel与显示国家或类似的新列。有人在熊猫身上做过这样的事情吗?

您可以使用df.drop_duplicates()删除重复的行。此外,如果您希望有一个新的DataFrame显示哪些行是重复的,请调用df.duplicated()

#!/usr/bin/env python3
# coding: utf-8
import pandas as pd
# define DataFrame using same sample data
d = {'i': [1, 2, 3, 4, 5, 6, 1, 4, 9, 10 ], 'j': [4, 12, 13, 1 ,15, 16, 4, 1, 19, 20]}
df = pd.DataFrame(data=d)
# print sample DataFrame
print(df)
# print DataFrame with dropped duplicate rows
print(df.drop_duplicates())
# print DataFrame containing `True` for each duplicate row, see doc for further options
print(df.duplicated())

编辑(由于注释):

定义完DataFrame df后,尝试以下操作:

df.groupby(['i', 'j']).size()

.groupby()对两列进行分组,而.size()返回底层数据中的元素数。

最新更新