我有2个数据框,组织如下:
eth_price.head(n=5)
Out[12]:
time eth_price
0 2017-08-28 16:19:00 344.021
2 2017-08-28 16:24:00 343.833
3 2017-08-28 16:29:00 343.643
4 2017-08-28 16:34:00 343.632
5 2017-08-28 16:39:00 343.456
btc_price.head(n=5)
Out[13]:
time btc_price
0 2017-08-27 22:50:00 4,389.6113
1 2017-08-27 22:51:00 4,389.0850
2 2017-08-27 22:52:00 4,388.8625
3 2017-08-27 22:53:00 4,389.7888
4 2017-08-27 22:56:00 4,389.9138
我正在尝试使用以下代码在time
上合并它们:
all_data = pd.merge(btc_price, eth_price, on = 'time', how = 'outer')
一个数据帧是6195行,另一个是908.理论上,all_data
应该返回6195行,包含3列(time,btc_price,eth_price)。
出于某种原因,最初与eth_price
时间戳匹配的btc_price
时间戳正在合并数据框中转换为unix,如下所示:
time btc_price eth_price
1504304640000000000 NA 386.541
1504304940000000000 NA 386.48
1504305240000000000 NA 386.67199999999997
1504305540000000000 NA 386.37199999999996
1504305840000000000 NA 386.606
为什么会发生这种情况,我该如何解决?
编辑:即使我使用eth_price[0] = pd.to_datetime(eth_price[0], unit = 's')
答案 0 :(得分:0)
好吧,我无法修复eth_price
的转换为unix时间戳,我也无法弄清楚它为什么会在第一时间发生。
所以,我的解决方案是使用df.join
,如下所示:
all_data1 = btc_price.join(eth_price)
当我运行这行代码时,eth_price['time']
列保持原始格式。