在python数据框中删除不包含列中特定字符串的多列的重复项
Posted
技术标签:
【中文标题】在python数据框中删除不包含列中特定字符串的多列的重复项【英文标题】:drop duplicates in a python dataframe for multiple columns not containing a particular string in a column 【发布时间】:2017-05-23 17:54:14 【问题描述】:我想删除仅限于 C2 和 C3 列的重复项。但是,现在在保留重复行时,应优先考虑 C4 列中以“zx”开头的行。例如:考虑第 0 行和第 1 行(指 C1 列),行“0”保留在输出中,因为它包含“zx”但 C4 被删除。此外,当两个副本都包含相同的“zx”时,例如第 6 行和第 7 行,任何人都可以被删除。但是,当重复行(对于列 C2 和 C3)包含不同的 "zx" 时,两者都应该保留,例如: 行:8 和 9。
输入:
C1 C2 C3 C4
0 AB Dat zx101
1 AB Dat tp102
2 CD CR zx1032
3 CD CR lx1032
4 EF KLM 2x501
5 EF KLM 2x501
6 HI NOP zx707
7 HI NOP zx707
8 PL TIP zx303
9 PL TIP zx304
输出:
C1 C2 C3 C4
0 AB Dat zx101
2 CD CR zx1032
4 EF KLM 2x501
6 HI NOP zx707
8 PL TIP zx303
9 PL IPT 2x304
【问题讨论】:
显示您尝试过的内容。堆栈溢出不是编码。请发布您的代码。查看How to Ask 以及如何创建minimal reproducible example 【参考方案1】:一种自然的方式是
首先排序您的数据,以便您想要保留的观察结果始终是每个重复组的第一个观察结果 然后使用drop_duplicates( keep = 'first')
【讨论】:
以上是关于在python数据框中删除不包含列中特定字符串的多列的重复项的主要内容,如果未能解决你的问题,请参考以下文章