我有此行数据框:
df = pd.DataFrame({'make':'toyota', 'model':'yaris'}, index=[0])
df
make model
0 toyota yaris
并具有此其他列数据框:
df_prices = pd.DataFrame({'prices':[1,2,3,4]})
df_prices
prices
0 1
1 2
2 3
3 4
我想和他们一起获得:
make model prices
0 toyota yaris 1
1 toyota yaris 2
2 toyota yaris 3
3 toyota yaris 4
答案 0 :(得分:6)
尝试:
df=df_prices.join(df).ffill()
print(df)
prices make model
0 1 toyota yaris
1 2 toyota yaris
2 3 toyota yaris
3 4 toyota yaris
如果在乎列:
df=df[['make','model','prices']]
print(df)
make model prices
0 toyota yaris 1
1 toyota yaris 2
2 toyota yaris 3
3 toyota yaris 4
join
+ ffill
!!!
更新(由于@larsr的评论):
df=df.join(df_prices, how='outer').ffill()
print(df)
不仅可以,而且还可以解决列顺序。
答案 1 :(得分:0)
这怎么办
print pd.merge(df,df_prices,left_index=True,right_index=True,how='outer').fillna(method='ffill')
Python 3:
print(pd.merge(df,df_prices,left_index=True,right_index=True,how='outer').fillna(method='ffill'))
更具体地说,
print pd.concat([df,df_prices],axis=1).ffill()
输出:
make model prices
0 toyota yaris 1
1 toyota yaris 2
2 toyota yaris 3
3 toyota yaris 4