Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:删除列显示在另一个数据框中的行_Python_Pandas - Fatal编程技术网

Python 熊猫:删除列显示在另一个数据框中的行

Python 熊猫:删除列显示在另一个数据框中的行,python,pandas,Python,Pandas,尽管标题令人困惑,但我想要的是: 数据帧1: i | col|u 1 | col|u 2 | col|u 3 1 |数据1 |数据2 |数据3 2 |数据4 |数据4 |数据6 3 |数据7 |数据8 |数据9 数据帧2: i | col|u 1 | col|u 2 | col|u 3 1 |数据A |数据8 |数据B 2 |数据C |数据2 |数据D 3 | dataE | dataF | dataG 代码应该从数据帧2中删除行1和行2,因为列2的值出现在数据帧1的列2中。该列是特定的,代码不

尽管标题令人困惑,但我想要的是:

数据帧1:

i | col|u 1 | col|u 2 | col|u 3
1 |数据1 |数据2 |数据3
2 |数据4 |数据4 |数据6
3 |数据7 |数据8 |数据9

数据帧2:

i | col|u 1 | col|u 2 | col|u 3
1 |数据A |数据8 |数据B
2 |数据C |数据2 |数据D
3 | dataE | dataF | dataG

代码应该从数据帧2中删除行1和行2,因为列2的值出现在数据帧1的列2中。该列是特定的,代码不需要对所有列进行测试。因此,数据帧2在处理后应如下所示:

i | col|u 1 | col|u 2 | col|u 3

1 | dataE | dataF | dataG

它是使用isin的否定的掩码

df3 = df2[~df2.col_2.isin(df1.col_2)]

Out[942]:
   i  col_1  col_2  col_3
2  3  dataE  dataF  dataG

它是使用isin的否定的掩码

df3 = df2[~df2.col_2.isin(df1.col_2)]

Out[942]:
   i  col_1  col_2  col_3
2  3  dataE  dataF  dataG

这段代码就可以了。关键行是
~df2.col_2.isin(df1.col_2)
isin()
函数的基本功能是遍历
系列(
df2.col_2
)并检查每个元素是否在参数
系列中:
df1.col_2
。它返回一系列与
df2
索引相对应的
布尔值。然后前面的
~
将其取反,以获得唯一的(或不在
df1
中的)。然后使用此选项过滤原始的
df2

import pandas as pd

df1 = pd.DataFrame([['data1', 'data2', 'data3'],
                    ['data4', 'data4', 'data6'] ,
                    ['data7', 'data8', 'data9']],
                   columns=['col_1', 'col_2', 'col_3'])
df2 = pd.DataFrame([['dataA', 'data8', 'dataB'],
                    ['dataC', 'data2', 'dataD'] ,
                    ['dataE', 'dataF', 'dataG']],
                   columns=['col_1', 'col_2', 'col_3'])
keep = ~df2.col_2.isin(df1.col_2)
df = df2[keep]

这段代码就可以了。关键行是
~df2.col_2.isin(df1.col_2)
isin()
函数的基本功能是遍历
系列(
df2.col_2
)并检查每个元素是否在参数
系列中:
df1.col_2
。它返回一系列与
df2
索引相对应的
布尔值。然后前面的
~
将其取反,以获得唯一的(或不在
df1
中的)。然后使用此选项过滤原始的
df2

import pandas as pd

df1 = pd.DataFrame([['data1', 'data2', 'data3'],
                    ['data4', 'data4', 'data6'] ,
                    ['data7', 'data8', 'data9']],
                   columns=['col_1', 'col_2', 'col_3'])
df2 = pd.DataFrame([['dataA', 'data8', 'dataB'],
                    ['dataC', 'data2', 'dataD'] ,
                    ['dataE', 'dataF', 'dataG']],
                   columns=['col_1', 'col_2', 'col_3'])
keep = ~df2.col_2.isin(df1.col_2)
df = df2[keep]

这个网站上的问题必须用英语提问,而不是葡萄牙语。我投票决定以离题的方式结束这个问题,因为它是葡萄牙语的,我刚刚翻译的。这个网站上的问题必须用英语提问,而不是葡萄牙语的。我投票决定以离题的方式结束这个问题,因为它是葡萄牙语的,我刚刚翻译的。