我有两个CSV文件,Python 2.7版和熊猫合并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
我要合并基于日期时间列是数据两个文件中的第一列。正如你所看到的第二个文件没有与第一个文件完全相同的记录,所以从第二个文件中丢失了一些数据,但那就没问题。我想根据它们之间的匹配日期瓦片字段将第二个文件中的Close列移至第一个文件
所以最终合并的csv文件将具有以下列... Date Time,Open,High,Low,关闭,音量,CloseFromSecondCsv
merged.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')
他们打算在不同的日子(是一个错字)?我不明白这是怎么回事(为什么只复制Close值?) –
Andy,对不起,这是我的错误。那是一个错字,我修正了它并编辑了原文。为什么只复制关闭值是因为我正在使用Altreva Adaptive Modeler,并且它允许基于单个仪器进行建模,并且最新版本允许您在建模中添加另一个数据点,因此我选择使用黄金关闭价格建模者。我只能使用单个附加列,否则不能使用第二个csv文件中的所有列,但现在只需关闭或列#4。 – killerkhan