[英]merging data frames confusion
我对合并几个数据框有些困惑。 以下数据帧被称为(dayData和数据):
dayData:
id stock_name broad_sector currency
0 BBG.XLON.BTA.S BT GROUP PLC Communications GBp
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications GBp
dayData type <class 'pandas.core.series.Series'>
dayData index [0 1]
数据:
id
BBG.XLON.BTA.S 301.221525
BBG.XLON.VOD.S 213.791400
Name: 2008-02-20 00:00:00, dtype: float64
data index [0 1]
dayData数据框是一个Series,因此我转换为一个数据框,然后尝试合并这些datae数据框:
data = data.to_frame().reset_index()
data.columns = ['id', 'price']
dayData = dayData.merge(data[['price']], left_on='id', right_index=True)
但是返回的dayData数据框为空:
Empty DataFrame
Columns: [id, stock_name, broad_sector, currency, price]
Index: []
我希望返回的是:
id stock_name broad_sector currency price
0 BBG.XLON.BTA.S BT GROUP PLC Communications GBp 301.221525
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications GBp 213.791400
知道我做错了什么吗?
谢谢,
我想你可以join
Serie
到DataFrame
,但建立之前Serie name
到price
由data.name = 'price'
:
print (dayData)
id stock_name broad_sector currency
0 BBG.XLON.BTA.S BT GROUP PLC Communications GBp
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications GBp
data.name = 'price'
print (data)
id
BBG.XLON.BTA.S 301.221525
BBG.XLON.VOD.S 213.791400
Name: price, dtype: float64
dayData = dayData.join(data, on='id')
print (dayData)
id stock_name broad_sector currency price
0 BBG.XLON.BTA.S BT GROUP PLC Communications GBp 301.221525
1 BBG.XLON.VOD.S VODAFONE GROUP PLC Communications GBp 213.791400
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.