熊猫组合数据框,删除行,该行的值未出现在所有初始数据框中

安德鲁·温特

我有两个熊猫数据框df1和df2。我想将它们组合到单个数据帧(df)中,但是删除出现在df1的'A'列中但该值不在df2的'A'列中的行。

输入:

[in]    df1 =          A     B
                 0     i     y
                 1     ii    y

[in]    df2 =          A     B
                 0     ii    x
                 1     i     y
                 2     iii   z
                 3     iii   z

所需的输出:

[out]    df =          A     B
                 0     i     y
                 1     ii    y
                 2     ii    x
                 3     i     y

在上面的示例中,除了df2中的“ A”列中带有“ iii”的行之外,所有行均已添加到df中,因为“ iii”未出现在df1的列“ A”中的任何位置。

为了使这一步骤更进一步,数据帧的初始数量不限于两个。可能有三个或更多,我想删除所有数据框中未出现的所有列“ A”值。

我怎样才能做到这一点?

提前致谢!

狮子座

这将适用于任何通用的数据帧列表。同样,数据帧的顺序也无关紧要。

df1 = pd.DataFrame([['i', 'y'], ['ii', 'y']], columns=['A', 'B'])
df2 = pd.DataFrame([['ii', 'x'], ['i', 'y'], ['iii', 'z'], ['iii', 'z']], columns=['A', 'B'])

dfs = [df1, df2]

set_A = set.intersection(*[set(dfi.A.tolist()) for dfi in dfs])
df = pd.concat([dfi[dfi.A.isin(set_A)] for dfi in dfs]) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

合并2个数据框,忽略右侧数据框中未出现在左侧数据框中的行

组合两个数据框,以便所有年份都出现在一列中

如果行名称出现在熊猫中另一个数据框的列名称中,请选择数据框的行值

计算直到第一个值出现在熊猫数据框中的天数

尝试使用相同值出现在多列中的 cumsum() 熊猫数据框

如果条件出现在任何行/列中,则读取熊猫数据框

删除出现在整个数据框中的特定值

如何删除负值的熊猫数据框中的所有行?

在熊猫数据框中第一次出现条件之前删除所有行

在熊猫数据框中第一次出现条件后删除所有行

如何通过熊猫或spark数据框删除所有行中具有相同值的列?

更改熊猫数据框中的所有行的值

从熊猫数据框的所有列和行中删除值

熊猫根据列值组合数据框

如何组合 2 个数据框,创建仅出现在第二个数据框而不出现在第一个数据框和 groupby 中的行以获得总和?

如何按索引从我的熊猫数据框中删除一行以防止它们出现在我的条形图中

在熊猫中组合数据框中的列的问题

熊猫数据框行的所有可能组合

对熊猫数据框中的所有可能组合求和

熊猫数据框删除具有相同值的数据行

使用熊猫根据条件来计算某项出现在单独数据框中的频率

如何在熊猫数据框中删除所有重复出现的事件或获取唯一值?

使用熊猫组合数据框中两行的不同部分

使用键在熊猫中重新组合数据框。比遍历行更快的方法吗?

R:从数据框中提取行,其中一列中的值出现在单独的向量中

删除熊猫数据框列中第一个出现空字符串之前的所有行

熊猫数据框中的值组合

当键出现在地图中时,有条件地替换数据框中的值

微调框未出现在菜单栏中