gpt4 book ai didi

python - 比较 Pandas 中数据帧的标题

转载 作者:太空狗 更新时间:2023-10-30 01:47:45 25 4
gpt4 key购买 nike

我正在尝试比较两个 pandas 数据帧的标题并过滤匹配的列。df1 是我的带有两个标题的大数据框,df2 是一种字典,我在其中保存了 df1 中需要的每个列标题。

所以如果 df1 是这样的:

    A         B         C         D
a b c d
0.469112 -0.282863 -1.509059 -1.135632
1.212112 -0.173215 0.119209 -1.044236
-0.861849 -2.104569 -0.494929 1.071804
0.721555 -0.706771 -1.039575 0.271860
-0.424972 0.567020 0.276232 -1.087401
-0.673690 0.113648 -1.478427 0.524988

df2 是这样的:

   B         D         E

我需要得到输出:

     B          D
-0.282863 -1.135632
-0.173215 -1.044236
-2.104569 1.071804
-0.706771 0.271860
0.567020 -1.087401
0.113648 0.524988

还有不匹配的标题元素列表:

A      C

以及 df1 中缺少的元素:

E

到目前为止,我已经在 stackoverflow 上尝试了 iloc 命令和许多不同的建议来比较行。因为我正在比较 header ,尽管这是不可能的。

编辑:我试过了

df1.columns.intersection(df2.columns)

但结果是:

MultiIndex(levels=[[], []],
labels=[[], []])

这是因为多个 header 吗?

最佳答案

对于给定的 df1df2

,这里有几个方法
In [1041]: df1.columns
Out[1041]: Index([u'A', u'B', u'C', u'D'], dtype='object')

In [1042]: df2.columns
Out[1042]: Index([u'B', u'D', u'E'], dtype='object')

df1df2 中的列

In [1046]: df1.columns.intersection(df2.columns)
Out[1046]: Index([u'B', u'D'], dtype='object')

df1 中的列不在 df2

In [1047]: df1.columns.difference(df2.columns)
Out[1047]: Index([u'A', u'C'], dtype='object')

df2 中的列不在 df1

In [1048]: df2.columns.difference(df1.columns)
Out[1048]: Index([u'E'], dtype='object')

关于python - 比较 Pandas 中数据帧的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45482755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com