【发布时间】:2021-04-11 17:28:11
【问题描述】:
数据框 1 是一个空数据框,用于设置列的“标题”:
| Header Green | Header Yellow | Header Red |
|---|
数据框 2 包含实际行,但某些列可能与数据框 1 不同。
| Header Green | Header Yellow | Header Purple |
|---|---|---|
| Data Green | Data Yellow | Data Purple |
在生成的数据框中,我想将两个数据框堆叠在一起,但只保留 dataframe1 中的列(即绿色、黄色、红色)。最终的数据框应该是:
| Header Green | Header Yellow | Header Red |
|---|---|---|
| Data Green | Data Yellow | Blank |
明确一点,决赛桌:
1 保留数据框 1 中的所有列
2 添加数据框 2 中的数据,其中列与数据框 1 相同
3 删除数据帧 2 中不在最终数据帧中的数据帧 1 中的任何列。
不幸的是,数据框中有很多列,因此解决方案需要了解要保留哪些列,而不是数据框中现有的名称。
谢谢!
【问题讨论】:
-
您不需要数据框 1 中的任何数据吗?如果是这种情况,只需列出数据框 2 中位于数据框 1 中的列:
cols_to_keep = [col for col in df2.columns if col in df1.columns],然后使用该列列表从数据框 2 中进行选择:df_new = df1[cols_to_keep] -
谢谢,设法做到这一点,但这意味着 df_new 不会保存 df1 中的所有列,其中列不在 df2 中的空值。所以在上面,使用这个解决方案我不会在结果数据框中得到 Header Red?
-
啊,明白了。错过了您需要具有空值的列的事实。