使用itertools后以CSV格式保存

时间:2017-10-08 15:20:15

标签: python list csv itertools

当我运行itertools并将其转换为列表时,我会得到不同的列表,如

[0, 0]
[0, 1]
[1, 0]
[1, 1]

如何将所有这些存储在一个csv文件中? 当我试图存储这个

import itertools
import pandas as pd
filename = 'BinFile.csv'
data = pd.read_csv(filename, header=None).iloc[:, 0].values.tolist()

for a, b in itertools.product(data, data):
    data1=(a,b)
    data2=list(data1)
    print(data2)
    df = pd.DataFrame(data2)
    df.to_csv('list1.csv', index=False)

在我导出csv后得到输出后,它只显示最后一个值

1
1

我试图像

那样存储
0 0
0 1
1 0
1 1

1 个答案:

答案 0 :(得分:0)

原因是你写了每个df(覆盖了以前的值)。试试这个:

dfs = pd.DataFrame()
for a, b in itertools.product(data, data):
    temp = [a, b]
    dfs.append(pd.DataFrame(temp))

dfs.to_csv('list1.csv', index=False)

我将dfs容器从循环中取出,因此每次迭代我们都会创建一个临时列表,然后将该列表附加到集合中。

在for循环之外,我们将整个容器数据写入csv。