df.unique() 基于列的整个 DataFrame
Posted
技术标签:
【中文标题】df.unique() 基于列的整个 DataFrame【英文标题】:df.unique() on whole DataFrame based on a column 【发布时间】: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”)?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于df.unique() 基于列的整个 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章
有没有一种有效的方法来计算 Pandas 中的列值,使用基于其他列的条件值的前行的值?