15

如何将 Series 作为新列添加到 Pandas DataFrame 并取回新的 DataFrame(即未到位)。

这有效,但已经到位:

A["name"] = s
4

3 回答 3

16

0.16.0以后,您可以使用assign-- 返回一个新对象(副本),其中包含除新列之外的所有原始列。

In [483]: A.assign(name=s)
Out[483]:
          0         1  name
0  0.876880  0.915174     0
1  0.644664  0.305387     1
2  0.930093  0.562453     2
3  0.807626  0.498871     3

细节

In [484]: A
Out[484]:
          0         1
0  0.876880  0.915174
1  0.644664  0.305387
2  0.930093  0.562453
3  0.807626  0.498871

In [485]: s
Out[485]:
0    0
1    1
2    2
3    3
dtype: int64
于 2017-09-07T08:14:47.897 回答
5

不确定是否有更优雅的方式,但这对我有用:

df = pd.concat( [A, pd.DataFrame(s)], axis=1 )
于 2013-11-06T02:34:06.167 回答
0

如果A是您的 DataFrame 并且s是系列。

df2 = A.copy()
df2['name'] = s
于 2013-11-06T02:36:44.013 回答