2016-11-10 73 views
1

我有包含時間序列按以下格式的.csv文件的文件夾欄:熊貓 - 轉換字典數據幀 - 鍵爲

1 0.950861 
2 2.34248 
3 2.56038 
4 3.46226 
... 

我通過循環包含的文件和通過的文件夾上訪問這些TEXTFILES每個文本文件的字典:

data_dict = {textfile: pd.read_csv(textfile, header=3, delim_whitespace=True, index_col=0) for textfile in textfiles} 

我要合併的列,其中包含彼此相鄰與字典鍵數據作爲索引(TEXTFILES的路徑名)。他們都有相同的行號。

到目前爲止,我試圖通過字典到pd.Dataframe這樣的:

df = pd.DataFrame.from_dict(data_dict, orient='index') 

事實上,方位需要是默認的「列」,但它導致一個錯誤: 值錯誤:如果使用所有標量值,你必須通過一個指數

如果我這樣做,我得到錯誤的結果: Excel_Output

這是我如何通過幀到Excel:

writer = pd.ExcelWriter("output.xls") 
df.to_excel(writer,'data', index_label = 'data', merge_cells =False) 
writer.save() 

我認爲錯誤必須將字典傳遞給數據框。 我試過pd.concat/merge/append,但沒有返回正確的結果。

在此先感謝!

回答

0

IIUC你可以嘗試用list comprehensionconcat

data_list = [pd.read_csv(textfile, header=3, delim_whitespace=True, index_col=0) 
      for textfile in textfiles] 
print (pd.concat(data_list, axis=1)) 
+0

好吧,這完美的作品。我的錯誤是行數不匹配。我可以通過設置ignore_index = True來解決這個問題。字典方式和列表理解之間的區別是:字典鍵作爲列標題,這在我的情況下非常有用。謝謝您的幫助! –