node_dict = {}
node_dict['brand'] = ['tacobell']
node_dict['category'] = ['food', 'fastfood']
node_dict['product'] = ['a', 'b', 'c', 'd']
我想将其写入CSV文件,例如:
brand category product
tacobell food a
fastfood b
c
d
在每一列中,品牌,类别,产品的行数可能不同。例如,在“品牌”下,只有一行,第二行和第三行将为空。
如何将它们写入CSV文件?我以为我应该逐列写。
答案 0 :(得分:4)
使用pandas
的一种方式:
import pandas as pd
df = pd.concat([pd.Series(v, name=k) for k,v in node_dict.items()], 1)
print(df)
输出:
brand category product
0 tacobell food a
1 NaN fastfood b
2 NaN NaN c
3 NaN NaN d
然后您可以使用df.to_csv
将其制作为csv文件:
print(df.to_csv('/path/you/want.csv', sep='\t', index=False))
输出:
brand category product
tacobell food a
fastfood b
c
d
答案 1 :(得分:1)
或使用以下代码:
df = pd.DataFrame(dict(zip(node_dict, map(pd.Series, node_dict.values()))))
df.to_excel('/path/to/file.xlsx', sep='\t', index=False)
答案 2 :(得分:1)
如果您要不使用pandas
的解决方案:
node_dict = {}
node_dict['brand'] = ['tacobell']
node_dict['category'] = ['food', 'fastfood']
node_dict['product'] = ['a', 'b', 'c', 'd']
import csv
from itertools import zip_longest
with open('data.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(node_dict)
for v in zip_longest(*node_dict.values(), fillvalue=''):
writer.writerow(v)
创建此csv: