[英]Python - Dictionary with arrays to csv file
我有一個字典,其中有四個鍵,每個鍵指向一個數組:
import pandas as pd
import csv
complete = {'average': ['a1', 'a2', 'a3', 'a4'], 'hard': ['h1', 'h2', 'h3', 'h4','h5'], 'easy': ['e1', 'e2', 'e3', 'e4','e5','e6'], 'difficult': ['d1', 'd2', 'd3', 'd4','d5','d6','d7']}
df = pd.DataFrame(complete,orient='index').to_csv('out.csv')
df.transpose()
如何將此字典寫入 csv 文件,其中鍵代表一列 header,而 arrays 將填充下面的相應列。
average | hard | easy | difficult |
a1 | h1 | e1 | d1 |
a2 | h2 | e2 | d2 |
a3 | h3 | e3 | d3 |
a4 | h4 | e4 | d4 |
| h5 | e5 | d5 |
| e6 | d6 |
| d7 |
如您所知,我嘗試使用 pandas 和 csv 庫。 不知道我做錯了什么,但這段代碼產生了以下 output:
TypeError: __init__() got an unexpected keyword argument 'orient'
您可以為字典中的每個鍵、值對創建一個 DataFrame 列表complete ,然后使用pd.concat :
import pandas as pd
complete = {'average': ['a1', 'a2', 'a3', 'a4'],
'hard': ['h1', 'h2', 'h3', 'h4', 'h5'],
'easy': ['e1', 'e2', 'e3', 'e4', 'e5', 'e6'],
'difficult': ['d1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7']}
df = [pd.DataFrame({ k : v }) for k, v in complete.items()]
df = pd.concat(df, axis=1)
print(df)
Output
average hard easy difficult
0 a1 h1 e1 d1
1 a2 h2 e2 d2
2 a3 h3 e3 d3
3 a4 h4 e4 d4
4 NaN h5 e5 d5
5 NaN NaN e6 d6
6 NaN NaN NaN d7
DataFrame 可以通過執行以下操作保存到 csv 文件中:
df.to_csv('output.csv', index=False)
在此處查看有關to_csv的文檔
你的命令
df = pd.DataFrame(complete,orient='index').to_csv('out.csv')
缺少from_dict
:
df = pd.DataFrame.from_dict(complete, orient='index').transpose()
df.to_csv('out.csv')
另請參閱此處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.