繁体   English   中英

Python - 字典与 arrays 到 csv 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM