gpt4 book ai didi

python - 无法在 Python Pandas 中添加具有值的多列

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:27 25 4
gpt4 key购买 nike

我想添加对数据的引用数据,所以我使用

data[reference.columns]=reference

但它只创建了没有值的列,我该如何添加值?

enter image description here

enter image description here

enter image description here

最佳答案

您的两个 DataFrame 的索引不同,因此当您执行 data[reference.columns] = reference 时,它会尝试在索引上对齐新列。由于 reference 的索引不在 data 中(或仅针对 index=0 对齐),它添加列,但用 填充值code>NaN.

您似乎想使用 reference 中的值将多个静态列添加到 data。你可以只分配这些:

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是共享的。

关于python - 无法在 Python Pandas 中添加具有值的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50799633/

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