我有以下数据框:
data=pd.DataFrame(data=[[8,4,2,6,0],[3,4,5,6,7]],columns=["a","b","c","d","e"])
输出如下:
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
我还有以下系列:
a=pd.Series([3,4])
我想将系列(a)附加到数据中的每一列。我用concat尝试了几件事,但似乎永远做不到。
预期结果是:
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
3 4 4 4 4 4
预先感谢
答案 0 :(得分:5)
您可以这样做:
out=data.append(pd.concat([a]*data.shape[1],axis=1,keys=data.columns),ignore_index=True)
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
3 4 4 4 4 4
答案 1 :(得分:3)
这是for循环中的方法
for x ,y in a.iteritems():
data.loc[data.index[-1]+x+1]=y
data
Out[106]:
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
4 4 4 4 4 4
答案 2 :(得分:2)
使用broadcast_to
df.append(pd.DataFrame(np.broadcast_to(a.to_frame(), (len(a), df.shape[1])), columns=df.columns), ignore_index=True)
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
3 4 4 4 4 4
答案 3 :(得分:2)
pandas.DataFrame.apply
带有pandas.Series.append
我喜欢它,因为它很漂亮
data.apply(pd.Series.append, to_append=a, ignore_index=True)
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
3 4 4 4 4 4
高尔夫球手的答案
data.apply(pd.Series.append, args=(a, 1))
numpy.row_stack
pd.DataFrame(np.row_stack([
data,
a.to_numpy()[:, None].repeat(data.shape[1], axis=1)
]), columns=data.columns)
a b c d e
0 8 4 2 6 0
1 3 4 5 6 7
2 3 3 3 3 3
3 4 4 4 4 4