我试图弄清楚如何使用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()
返回底层数据中的元素数。