首页 > 解决方案 > 如何找到两个数据框中都没有出现的数据(特别是列名)?

问题描述

我有 2 个数据框(足够大)。他们有列:ch_name、时间、值。现在,df(第一个数据帧)有 160 个通道,但 df1(第二个数据帧)有 161 个通道。如何识别过度的频道名称(df 没有此频道但 df1 有)。有时通道名称在 2 个数据帧之间不匹配。最后,我想要 2 个具有相同通道名称和编号的数据帧(单独)。我想为两个数据框制作 160 个频道。我不想加入或连接它们。

                        ch_name                time     value  interval
0     ADCS.Attitude_-_Omega_Y_deg_s 2019-01-05 00:00:00 -0.059533      60.0
1     ADCS.Attitude_-_Omega_Y_deg_s 2019-01-05 00:01:00 -0.063133      60.0
2     ADCS.Attitude_-_Omega_Y_deg_s 2019-01-05 00:02:00 -0.057533      60.0
3     ADCS.Attitude_-_Omega_Y_deg_s 2019-01-05 00:03:00 -0.053867      60.0
4     ADCS.Attitude_-_Omega_Y_deg_s 2019-01-05 00:04:00 -0.067067      60.0
...                             ...                 ...       ...       ...
1435             ADCS.RW3_MsmtValid 2019-01-05 23:55:00  1.000000      60.0
1436             ADCS.RW3_MsmtValid 2019-01-05 23:56:00  1.000000      60.0
1437             ADCS.RW3_MsmtValid 2019-01-05 23:57:00  1.000000      60.0
1438             ADCS.RW3_MsmtValid 2019-01-05 23:58:00  1.000000      60.0
1439             ADCS.RW3_MsmtValid 2019-01-05 23:59:00  1.000000      60.0

标签: pythonpandas

解决方案


您可以使用设置逻辑执行此操作:

df = pd.DataFrame(columns = ['a1', 'ba1', 'b1', 'c1'])
df1 = pd.DataFrame(columns = ['a1', 'gg', 'b1', 'c2'])

df
   a1   ba1 b1  c1

df1
    a1  gg  b1  c2

要从 df 中删除 df1 中的列:

df.drop(columns = set(df.columns) - set(df1.columns), inplace=True)
df
   a1   b1

推荐阅读