1
我正在讀取幾個.csv文件(每個文件都是第一列中的日期(我想索引)的時間序列,以及時間序列在第二列中我可以讀取數據,但是當我希望每個文件都有自己的按日期索引的列時,它都會附加到數據框中的同一列上:試圖將多個.csv讀取到單獨的數據幀列中
因此,例如,如果我有3個文件三個以上的現實)
csv1
1/1/2016,1.1
2/1/2016,1.2
3/1/2016,1.6
csv2
1/1/2016,4.6
2/1/2016,31.2
3/1/2016,1.8
csv3
2/1/2016,3.2
3/1/2016,5.8
目前我回:
0 1
1/1/2016 1.1
2/1/2016 1.2
3/1/2016 1.6
1/1/2016 4.6
2/1/2016 31.2
3/1/2016 1.8
2/1/2016 3.2
3/1/2016 5.8
當我想回:
0 1 2 3
1/1/2016 1.1 4.6 null
2/1/2016 1.2 31.2 3.2
3/1/2016 1.6 1.8 5.8
我此刻的代碼如下所示:
def getData(rawDataPath):
big_frame = pd.DataFrame()
path = rawDataPath
allfiles = glob.glob(os.path.join(path,"*.csv"))
np_array_list = []
for file_ in allfiles:
df = pd.read_csv(file_,index_col=None, header=0)
np_array_list.append(df.as_matrix())
comb_np_array = np.vstack(np_array_list)
big_frame = big_frame.append(pd.DataFrame(comb_np_array))
return big_frame
任何幫助將非常感激。
感謝
由於這是偉大的!有沒有辦法將.csv文件名稱添加爲列標題? – Stacey
嗯我想你可以修改列名至少通過分配'dframe.columns = ['日期','csv1','csv2','csv3']'左右,或命名您的列創建幀時:'pd.read_csv(csv1,names = ['date','csv1'],header = None)'。這樣就不需要爲普通列加後綴,並且合併後的結果也不會有問題。 –
'pd.merge(df1,df2,...)'的替代(更漂亮)語法是'df1.merge(df2,on = 0,how ='outer')。merge(df3,on = 0,how ='outer')'和哇'減少(部分(...'非常優雅!:) –