python如何删除一行数据_python – 删除一行中的值等于另一列中的值的行

我正在努力弄清楚如何从pandas数据框中删除行,其中两个指定的列在一行中具有相同的值.

例如,在下面的示例中,我想删除第2列和第4列中具有重复值的行.

例如:

Column1 Column2 Column3 Column4

Pat 123 John 456

Pat 123 John 345

Jimmy 678 Mary 678

Larry 678 James 983

会变成:

Column1 Column2 Column3 Column4

Pat 123 John 456

Pat 123 John 345

Larry 678 James 983

任何帮助表示赞赏,谢谢!

解决方法:

Series.ne(!=)

df[df['Column2'] != df['Column4']]

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

或者,使用operator.ne:

df[operator.ne(df['Column2'], df['Column4'])]

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

比较两者;得到一个面具,然后过滤.

使用loc,我们还可以提供回调(由@ W-B建议!).

df.loc[lambda x : x['Column2'] != x['Column4']]

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

询问

df.query('Column2 != Column4')

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

np.vectorize

import operator

f = pd.np.vectorize(lambda x, y: x != y)

df[f(df['Column2'], df['Column4'])]

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

…纯娱乐.

列表理解

df[[x != y for x, y in zip(df['Column2'], df['Column4'])]]

Column1 Column2 Column3 Column4

0 Pat 123 John 456

1 Pat 123 John 345

3 Larry 678 James 983

比你想象的更快!

标签:python,pandas

来源: https://codeday.me/bug/20190722/1499906.html

你可能感兴趣的:(python如何删除一行数据)