python - Pandas - 合并 2 个数据帧,仅将第一个数据帧中的列作为输出
问题描述
假设我有一个数据框,其列如下:
一种 | 乙 | C | X | F |
---|
另一个数据框有列:
一种 | Ĵ | 大号 | 乙 | C |
---|
如何将第二个数据框中的行添加到只有 5 列的第一个?我不希望列 J 和 L 出现在最终数据框中。
还假设我不想要许多其他列,那么有没有办法在不指定列名的情况下做到这一点?会很庞大...
解决方案
用于Index.intersection
过滤列df2
by df1.columns
:
#if all columns from df1 are in df2
df22 = df2[df1.columns]
#if NOT all columns from df1 are in df2
df22 = df2[df2.columns.intersection(df1.columns)]
然后使用DataFrame.append
:
df = df1.append(df22, ignore_index=True)
或者concat
:
df = pd.concat([df1, df22], ignore_index=True)
另一种解决方案是在按列添加新行后进行过滤df1
:
df = pd.concat([df1, df2], ignore_index=True)[df1.columns]
推荐阅读
- java - 递归方法查找数字中出现的数量
- azure-active-directory - oAuth2.0 与 Microsoft flow(Power Automate) 然后访问受保护的 API
- sas - 在位置将变量拆分为两个变量
- python - 为什么即使没有类访问权限也会调用类中的语句?
- installation - SnowSQL 1.2.2 为什么找不到版本下载?
- python - Python 网络爬虫在输入 520 个 url 时冻结。它出什么问题了?
- sql-server - 如何使用 CTE 改进此 TSQL 语句
- r - 带有 Keras 模型的 SHAP:操作数无法与形状一起广播 (2,6) (10,)
- python - quicks 在线书籍如何刷新令牌以进行身份验证。用蟒蛇
- macos - 如何在 MacOS 中使用终端创建动态(可增长)DMG 文件