将熊猫行与列连接

时间:2018-10-31 12:21:24

标签: python pandas

我有此行数据框:

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

2 个答案:

答案 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