我目前有一个Pandas DataFrame,并且希望删除在两列中有重复对的行。下面是一个例子,展示了我的意思:
col0 col1 col2
0 0 1 0
1 1 2 1
2 0 3 0
3 4 4 6
4 3 5 1
5 0 6 0
假设我想根据col0
和col2
上的值对删除重复项。正如您在这个玩具示例中所看到的,行0
、2
和5
都有(0, 0)
对的副本,我想删除重复的行,只保留一个行。
有什么办法能让我高效地做这件事吗?我尝试过查看复本,但它的行为似乎与我所预期的略有不同。
提前谢谢。
发布于 2019-11-18 01:40:17
import pandas as pd
data = [[0, 1, 0], [1, 2, 1], [0, 3, 0], [4, 4, 6], [3, 5, 1], [0, 6, 0]]
df = pd.DataFrame(data = data, columns=['col0', 'col1', 'col2'])
print(df.drop_duplicates(['col0', 'col2']))
产出:
col0 col1 col2
0 0 1 0
1 1 2 1
3 4 4 6
4 3 5 1
发布于 2019-11-18 01:46:22
以下是其中的诀窍:
data = [[0,1,0],[1,2,1],[0,3,0],[4,4,6],[3,5,1],[0,6,0]]
df = pd.DataFrame(data, columns=['col0', 'col1','col2'])
print(df.drop_duplicates(subset=['col0','col2']))
col0 col1 col2
0 0 1 0
1 1 2 1
3 4 4 6
4 3 5 1
https://stackoverflow.com/questions/58906872
复制相似问题