使用熊猫系列添加新列

瓦伦丁

我有一个熊猫数据帧和一个熊猫系列。我想添加具有数据框值的新常量列。在一个例子中:

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

有什么建议么?

耶斯列

使用assign与解压缩Series**

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

Numpynew DataFramewithnumpy.broadcast_to和 的解决方案join

df = pd.DataFrame(np.broadcast_to(s1.values, (len(df1),len(s1))), 
                  index=df1.index, 
                  columns=s1.index)

df1 = df1.join(df)
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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章