我有一个list
,我基于每个列表项创建了一个dictionary
,我想写一个CSV
文件如下:
ListItem, key1, key2, key3
li1, value1, value2, value3
li2, value1, value2, value3
这就是我尝试这样做的方式,但是我认为我的代码覆盖了每次迭代的第一行,并且我不知道如何在第一列中输入列表项。你能帮我一下吗?
import pandas as pd
import random
def CreateDict(li):
dict = {}
dict['x'] = random.randrange(1, li)
dict['y'] = random.randrange(1, li)
print(dict)
return dict
mylist = [10, 20, 30]
for li in mylist:
mydict = CreateDict(li)
df = pd.DataFrame([mydict]) # Here
df.to_csv('test.csv', index=False)
我想要这个结构在CSV
文件:
LI, x, y
10, 6, 2
20, 10, 14
30, 25, 27
但是我得到这个作为输出:
x,y
25,27
由于您的问题没有明确定义,我将编写一个简单的示例,以您要求的格式从字典创建csv。字典看起来像:
myd = {"k1":["v11","v12"],"k2":["v21","v22"],"k3":["v31","v32"]}
您所需要的只是添加一个索引列(使用reset_index
),并将其重命名为您想要的名称:
pd.DataFrame(your_dict).reset_index().rename({"index":"ListItem"}).to_csv("your.csv",index=False)