2017-09-01 201 views
0

我有3個數據幀我正在嘗試合併到熊貓中。一列是20列,另外兩列各有2列。他們被組織成這樣:熊貓合併df錯誤

eth_price.head(n=3) 

Out[6]: 
      time eth_price 
0 8/28/17 16:19 344.021 
2 8/28/17 16:24 343.833 
3 8/28/17 16:29 343.643 
btc_price.head(n=3) 

Out[7]: 
        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 

block_data.head(n=3) 
Out[8]: 
        time block_size difficulty estimated_btc_sent \ 
0 2017-08-30 22:55:03 165261989 888171856257  22433058065308 
5 2017-08-30 23:02:03 165261989 888171856257  22433058065308 
12 2017-08-30 23:09:03 164262692 888171856257  22210602766312 

    estimated_transaction_volume_usd  hash_rate market_price_usd \ 
0      1.030796e+09 7.417412e+09   4594.98 
5      1.030796e+09 7.417412e+09   4594.98 
12      1.020574e+09 7.373261e+09   4594.98 

    miners_revenue_btc miners_revenue_usd minutes_between_blocks \ 
0     2495   11467926.77     7.98 
5     2495   11467926.77     7.98 
12    2478   11388475.85     8.01 

    n_blocks_mined n_blocks_total n_btc_mined n_tx nextretarget \ 
0    168   482713 210000000000 273392  483839 
5    168   482713 210000000000 273392  483839 
12    167   482713 208750000000 271638  483839 

    total_btc_sent total_fees_btc   totalbtc trade_volume_btc \ 
0 164688219250248  39574691936 1653391250000000   44110.58 
5 164688219250248  39574691936 1653391250000000   44110.58 
12 163455939539341  39095614135 1653391250000000   44110.58 

    trade_volume_usd 
0  2.026876e+08 
5  2.026876e+08 
12  2.026876e+08 

我試圖用all_data = pd.merge(btc_price, eth_price, block_data, on = 'time', how = 'outer')但是合併我這樣做時,我得到了以下錯誤:

File "", line 1, in all_data = pd.merge(btc_price, eth_price, block_data, on = 'time', how = 'outer')

TypeError: merge() got multiple values for argument 'how'

這是什麼意思,我該如何解決?

最終結果應該是一個包含22列的數據幀,包括所有3個df中的所有行。然後,我將刪除缺少值的行。

編輯:如果你看看時間戳,第一個2分貝出現在分鐘上,而第三分鐘出現在03秒......有沒有辦法解決這個問題?我有一個腳本,每分鐘從json中抽取這3個文件,並且我試圖相應地對齊3個df

+0

在您的問題中包含_complete_錯誤消息。 – DyZ

+0

@DYZ好的,我做了,但那是完整的錯誤信息,所有缺少的是回溯。 – zsad512

+0

看看這個得到一個想法如何解決datetime列https://stackoverflow.com/questions/38067704/how-to-change-the-datetime-format-in-pandas和這個教程關於合併和加入dataframes https://pythonprogramming.net/join-merge-data-analysis-python-pandas-tutorial/ – Colonder

回答

0

pd.merge只能合併兩個 DataFrames。第三個參數(您的案例中的block_data)被解釋爲「how」。您還提供了名爲how='outer',這就是您看到錯誤消息的原因。解決您的問題:合併前兩個DataFrame,然後將結果與第三個合併。