我有一排pandas数据帧,即
x p y q z
---------
1 4 2 5 3
我想只将一些列(' x',' y'' z')附加到另一个数据框,作为名称为&#的新列39;一个'' b'' C'
在:
A B
---
7 8
9 6
8 5
在
A B a b c
---------
7 8 1 2 3
9 6 1 2 3
8 5 1 2 3
答案 0 :(得分:3)
试试这个,
df1=pd.DataFrame({'x':[1],'y':[2],'z':[3]})
df2=pd.DataFrame({'A':[7,9,8],'B':[8,6,5]})
print pd.concat([df2,df1],axis=1).fillna(method='ffill').rename(columns={'x':'a','y':'b','z':'c'})
A B a b c
0 7 8 1.0 2.0 3.0
1 9 6 1.0 2.0 3.0
2 8 5 1.0 2.0 3.0
答案 1 :(得分:2)
使用Series
创建的assign
,选择1. df1
行:
cols = ['x','y','z']
new_cols = ['a','b','c']
df = df2.assign(**pd.Series(df1[cols].iloc[0].values, index=new_cols))
print (df)
A B a b c
0 7 8 1 2 3
1 9 6 1 2 3
2 8 5 1 2 3