我有一个熊猫DataFrame和一个熊猫系列。我想添加具有数据框值的新常量列。在一个示例中:
In [1]: import pandas as pd
df1 = pd.DataFrame({'a': [1,2,3,4,5], 'b': [2,2,3,2,5]})
In [2]: df1
Out[2]:
a b
0 1 2
1 2 2
2 3 3
3 4 2
4 5 5
In [3]: s1 = pd.Series({'c':2, 'd':3})
In [4]: s1
Out[4]:
c 2
d 3
dtype: int64
In [5]: for key, value in s1.to_dict().items():
df1[key] = value
我的丑循环完成了我想要的。但是肯定有一个更好的解决方案,可能是使用一些我猜的合并或组操作
In [6]: df1
Out[6]:
a b c d
0 1 2 2 3
1 2 2 2 3
2 3 3 2 3
3 4 2 2 3
4 5 5 2 3
有什么建议吗?
答案 0 :(得分:2)
将assign
与Series
的{{1}}一起打开包装:
**
df1 = df1.assign(**s1)
print (df1)
a b c d
0 1 2 2 3
1 2 2 2 3
2 3 3 2 3
3 4 2 2 3
4 5 5 2 3
解决方案,用于具有numpy.broadcast_to
和join
的新Numpy
:
DataFrame