如何将不等价列表作为值的字典转换为csv [英] How do i convert a dictionary with unequal list as value to csv
本文介绍了如何将不等价列表作为值的字典转换为csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一本字典,其中的列表不等于这样的值
I have a dictionary with an unequal list as values like this
dict_data = {
"Data 1": ["cool", "fantastic"],
"Data 2": ["spam", "hello", "howdy", "foo"],
"Data 3": ["good morning"],
}
我想要这样的输出
Data 1 Data 2 Data 3
cool spam good morning
fantastic hello
howdy
foo
我已经尝试过在论坛上找到的
I have tried this which I found on this forum
def transpose(cols):
return map(lambda *row: list(row), *cols)
with open('result.csv','w') as out_file:
writer = csv.writer(out_file,dialect = 'excel')
headers = dict_data.keys()
items = transpose(dict_data.values())
writer.writerow(headers)
writer.writerows(items)
但是它只输出第一行
Data 1 Data 2 Data 3
cool spam good morning
推荐答案
这可能不是最佳答案,但我始终将要导出为csv的数据转换为pandas数据框。此解决方案也适用于不相等的列表值。
It might not be the best answer but I always convert the data I want to export as csv to a pandas dataframe. This solution also works well for unequal list values.
data1 = pd.DataFrame(dict_data["Data 1"])
data2 = pd.DataFrame(dict_data["Data 2"])
master = pd.concat([data1, data2], axis=1)
master.to_csv("file_name", encoding='utf-8', index=False, header=None)
这篇关于如何将不等价列表作为值的字典转换为csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文