複数のCSVファイルを1つの大きなデータフレームのファイルにマージしようとしています。私はそれらをDate Columnのものに関してマージしたい。一部のCSVファイルには日付がありませんが、空白またはNAを記録する必要があります。Python Pandas - NaNを返す複数のDataFrameをマージできない
周囲を検索すると、私は、Pythonのパンダが実行可能なソリューションになると信じていました。
import pandas as pd
AvgPrice = pd.read_csv('csv/BAVERAGE-USD-Bitcoin24hPrice.csv', index_col=False)
AvgPrice = AvgPrice.iloc[:,(0,1)]
AvgPrice.columns.values[1] = 'Price'
TransVol = pd.read_csv('csv/BCHAIN-ETRAV-BitcoinEstimatedTransactionVolume.csv', index_col=False)
TransVol.columns.values[1] = 'TransactionVolume'
TotalBTC = pd.read_csv('csv/BCHAIN-TOTBC-TotalBitcoins.csv', index_col=False)
TotalBTC.columns.values[1] = 'TotalBTC'
USDExchVol = pd.read_csv('csv/BCHAIN-TRVOU-BitcoinUSDExchangeTradeVolume.csv', index_col=False)
USDExchVol.columns.values[1] = 'USDExchange Volume'
df1 = pd.merge(TransVol, AvgPrice, on='Date', how='outer')
df2 = pd.merge(USDExchVol, TotalBTC, on='Date', how='outer)
df_test = pd.merge(AvgPrice, TransVol, on='Date', how='outer')
CSVファイルはここに置かれています:https://drive.google.com/folderview?id=0B8xdmDmZgtJbVkhCcjZkZUhaajg&usp=sharing
df_testの結果:
Date Price TransactionVolume
0 2016-05-10 459.30 NaN
1 2016-05-09 462.49 NaN
2 2016-05-08 461.85 NaN
3 2016-05-07 460.86 NaN
4 2016-05-06 453.51 NaN
5 2016-05-05 449.31 NaN
をDF1は大丈夫であるように思わに対し次のように
私のコードがある
Date TransactionVolume Price
0 2016-05-10 275352.0 459.30
1 2016-05-09 256585.0 462.49
2 2016-05-08 152045.0 461.85
3 2016-05-07 245115.0 460.86
4 2016-05-06 264882.0 453.51
5 2016-05-05 273005.0 449.31
df2とdf_testの右端の列がNaNで埋められている理由はわかりません。これにより、df1とdf2の両方をマージして1つの大きなDataFrameを作成することが制限されています。
私は何時間も成功しなかったので、どんな助力もあれば幸いです。
を美しい感謝:)私はハードにそれを見つけることだが、私はDF1の概要を作成し、それぞれの平均値を見つけたいと言っているトピックオフ もう一つは月。 df1.groupby(TimeGrouper( '1M'))などを使ってどうすればいいですか。私は正しい構文がどういうものかは分かりません。 – TehNewbie
「年」と「月」は一緒だと思いますか?またはすべてのJanuaries、2月の平均...? – jezrael
私は答えを編集します、それを確認してください。 – jezrael