示例数据为:
000000008,2, 1,000000010
000000009,1, 1,000000011
000000010,1, 1,000000008
000000011,2, 1,000000032
000000012,3, 1,000000009
000000013,2, 1,000000108
您可以看到第一列中的某些值也出现在第四列中。我要删除这些行,其中第四列中的值也会出现在第一列中的任何行上。
因此,在此示例中,应删除以下行:
000000008,2, 1,000000010
000000010,1, 1,000000008
000000012,3, 1,000000009
000000009,1, 1,000000011
代码起点:
import numpy as np
import pandas as pd
T = u'''000000008,2, 1,000000010
000000009,1, 1,000000011
000000010,1, 1,000000008
000000011,2, 1,000000032
000000012,3, 1,000000009
000000013,2, 1,000000108'''
from io import StringIO
df = pd.read_csv(StringIO(T), header=None)
print(df)
答案 0 :(得分:2)
IIUC,根据您的描述,您可以执行以下操作:
df[~df.iloc[:,3].isin(df.iloc[:,0])]
哪个返回:
0 1 2 3
3 11 2 1 32
5 13 2 1 108
与所需的输出相反,这将删除带有000000011
的行,而不是带有000000108
的行,因为在两列中都找到了000000011
,但是000000108
被删除了不是