私は2つのcsvファイルを持っています
1: eurusd.csv 2: xauusd.csv
ファイルにヘッダーはありませんが、データは日時、始値、高値、安値、終値、出来高です。各ファイルには次のタイプのデータが含まれています...
eurusd.csv:
02/23/2009 18:01,1.27090,1.27110,1.27040,1.27050,204
02/23/2009 18:02,1.27060,1.27060,1.27000,1.27040,211
02/23/2009 18:03,1.27040,1.27050,1.27010,1.27040,82
02/23/2009 18:04,1.27020,1.27080,1.27020,1.27060,98
xauusd.csv
02/23/2009 18:01,991.260,992.120,990.800,991.840,69
02/23/2009 18:02,991.800,992.260,991.200,991.870,74
02/23/2009 18:04,991.820,991.830,990.700,991.320,74
両方のファイルの最初の列である日時列に基づいてデータをマージしたいと考えています。ご覧のとおり、2 番目のファイルには最初のファイルとまったく同じレコードが含まれていないため、2 番目のファイルの一部のデータが欠落していますが、問題ありません。それらの間の一致する日付タイル フィールドに基づいて、2 番目のファイルから最初のファイルに Close 列を移動したい
したがって、最終的にマージされた csv ファイルには次の列が含まれます... Date Time、Open、High、Low、Close、Volume、CloseFromSecondCsv
マージされた.csv
02/23/2009 18:01,1.27090,1.27110,1.27040,1.27050,204,991.840
02/23/2009 18:02,1.27060,1.27060,1.27000,1.27040,211,991.870
02/23/2009 18:03,1.27040,1.27050,1.27010,1.27040,82,0
02/23/2009 18:04,1.27020,1.27080,1.27020,1.27060,98,991.320
これを行う方法がわかりません。前もって感謝します
TomAugspurger の回答に基づく最終的な作業コード:
import pandas as pd
df1 = pd.read_csv("C:\IQFEED\XAUUSDO.COMP_1.csv", index_col=0, names=['time', 'open', 'high', 'low', 'close', 'volume'], parse_dates=True)
df2 = pd.read_csv("C:\IQFEED\EURUSD.COMP_1.csv", index_col=0, names=['time', 'open', 'high', 'low', 'close', 'volume'], parse_dates=True)
df2['other_close'] = df1['close']
df2.fillna(0)
df2.to_csv('C:\IQFEED\python.csv')
列番号のみを使用する方法を見つけました...
import pandas as pd
df1 = pd.read_csv("C:\IQFEED\XAUUSD.txt", index_col=0, usecols=[0,4], parse_dates=True, header=None)
df2 = pd.read_csv("C:\IQFEED\EURUSD.txt", index_col=0, usecols=[0,1,2,3,4,5], parse_dates=True, header=None)
df2[6] = df1[4]
df2.to_csv('C:\IQFEED\python1.csv')