python - 无法在 Python Pandas 中添加具有值的多列
解决方案
您的两个 DataFrame 的索引不同,因此当您这样做时,data[reference.columns] = reference
它会尝试对齐索引上的新列。由于 的 索引reference
不在data
(或仅对齐index=0
)它添加列,但用 填充值NaN
。
看起来您想要添加多个静态列,data
其中的值来自reference
. 您可以分配这些:
for col in reference.columns:
data[col] = reference[col].values[0]
这是该问题的说明。
import pandas as pd
data = pd.DataFrame({'id': [1, 2, 3, 4],
'val1': ['A', 'B', 'C', 'D']})
reference = pd.DataFrame({'id2': [1, 2, 3, 4],
'val2': ['A', 'B', 'C', 'D']})
这些具有相同的指数,范围为 0-3。
data[reference.columns] = reference
输出
id val1 id2 val2
0 1 A 1 A
1 2 B 2 B
2 3 C 3 C
3 4 D 4 D
但是,如果这些 DataFrame 具有不同的索引(仅部分重叠):
data = pd.DataFrame({'id': [1, 2, 3, 4],
'val1': ['A', 'B', 'C', 'D']})
reference = pd.DataFrame({'id2': [1, 2, 3, 4],
'val2': ['A', 'B', 'C', 'D']})
reference.index=[3,4,5,6]
data[reference.columns]=reference
输出:
id val1 id2 val2
0 1 A NaN NaN
1 2 B NaN NaN
2 3 C NaN NaN
3 4 D 1.0 A
因为只有索引值 3 是共享的。
推荐阅读
- json - 解析 json 数据并将其存储到 django 模型
- android - 如何在 Android 中缩放视图及其边界?
- swift - SwiftUI Core Data 没有正确刷新“一对多”关系并且列表没有刷新
- c++ - 没有构造函数“Name::Name”的实例与参数列表匹配
- javascript - 我正在尝试显示从本地服务器获取的数据,但收到错误消息
- excel - 如何将数据添加到现有 excel.csv 文件的行中?excel vba
- google-cloud-platform - 如何在 Terraform 中按顺序创建 GCP SQL 数据库?
- c# - 多个数据库上下文未创建完整数据库
- html - 如何删除分区底部的滚动条?
- python - 如何在此 html 中获取价格信息?