【问题标题】:df.unique() on whole DataFrame based on a columndf.unique() 基于列的整个 DataFrame
【发布时间】:2017-08-28 07:28:32
【问题描述】:
我有一个 DataFrame df 填充有重复 ID 的行和列:
Index Id Type
0 a1 A
1 a2 A
2 b1 B
3 b3 B
4 a1 A
...
当我使用时:
uniqueId = df["Id"].unique()
我得到一个唯一 ID 列表。
但是,我怎样才能在整个 DataFrame 上应用此过滤,以便它保留结构但删除重复项(基于“Id”)?
【问题讨论】:
标签:
python
python-3.x
pandas
dataframe
duplicates
【解决方案1】:
您似乎需要 DataFrame.drop_duplicates 和参数 subset 来指定测试重复的位置:
#keep first duplicate value
df = df.drop_duplicates(subset=['Id'])
print (df)
Id Type
Index
0 a1 A
1 a2 A
2 b1 B
3 b3 B
#keep last duplicate value
df = df.drop_duplicates(subset=['Id'], keep='last')
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B
4 a1 A
#remove all duplicate values
df = df.drop_duplicates(subset=['Id'], keep=False)
print (df)
Id Type
Index
1 a2 A
2 b1 B
3 b3 B