我有一个现有的 Dataframe ,我尝试连接一个字典,其中字典的长度与 Dataframe 不同
A B C
0 0.46324 0.32425 0.42194
1 0.10596 0.35910 0.21004
2 0.69209 0.12951 0.50186
3 0.04901 0.31203 0.11035
4 0.43104 0.62413 0.20567
5 0.43412 0.13720 0.11052
6 0.14512 0.10532 0.05310
以及
test = {"One": [0.23413, 0.19235, 0.51221], "Two": [0.01293, 0.12235, 0.63291]}
我尝试将test
添加到df
,同时将键更改为"D"
和"C"
,我查看了https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html和https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.concat.html,这表明我应该能够将字典连接到 Dataframe
我试过了
pd.concat([df, test], axis=1, ignore_index=True, keys=["D", "E"])
pd.concat([df, test], axis=1, ignore_index=True)
但我没有任何运气,我试图达到的结果是
A B C D E
0 0.46324 0.32425 0.42194 0.23413 0.01293
1 0.10596 0.35910 0.21004 0.19235 0.12235
2 0.69209 0.12951 0.50186 0.51221 0.63291
3 0.04901 0.31203 0.11035 NaN NaN
4 0.43104 0.62413 0.20567 NaN NaN
5 0.43412 0.13720 0.11052 NaN NaN
6 0.14512 0.10532 0.05310 NaN NaN
3条答案
按热度按时间rnmwe5a21#
假设要将它们添加为行:
如果作为新列添加:
在字典中不能保证顺序(例如
test
),因此实际上需要将新列名Map到键。7gyucuyw2#
您可以做到这一点的唯一方法是:
因为正如@ Alexandria 正确提到的,连接的行数应该匹配,否则,就像您的情况一样,缺少的行将用
NaN
填充qfe3c7zg3#
要将字典添加为新列,另一种方法是将其转换为 Dataframe 并简单地赋值。
要将字典添加为新行,另一种方法是使用
from_dict
方法将字典转换为 Dataframe 并进行连接。