从列表中删除双引号和方括号,并使用pandas写入csv文件

时间:2019-10-11 12:37:19

标签: python python-3.x pandas

尝试了很多方法来获取输出

import pandas as pd

numbers= []
for i in range(100,5100,100):
    numbers.append((30,i))

df = pd.DataFrame(list(zip(*[numbers])))
df.to_csv('file.csv',header=False,index=False,index_label=None

该程序的输出:

file.csv:

"(30, 100)"

"(30, 200)"

"(30, 300)"

"(30, 400)"

"(30, 500)"

"(30, 600)"

"(30, 700)"

但我想要实际输出

file.csv:

30,100

30,200

30,300

30,400

30,500

30,600

2 个答案:

答案 0 :(得分:1)

只需替换pd.DataFrame(zip[*numbers])' with 'pd.DataFrame(numbers)

import pandas as pd

numbers = []
for i in range(100, 5100, 100):
    numbers.append((30, i))

df = pd.DataFrame(numbers)
df.to_csv('file.csv', header=False, index=False, index_label=None)

说明: DataFrame(list(zip(*[numbers])))将创建一个具有行值元组(30,100),(30,200),(30,300)等的一列数据帧。

DataFrame(numbers)将创建一个两列数据帧,其中第0列的行值为30、30、30等,第1列的行值为100、200、300等。

只需print(df.head(20))即可看到效果。

通过列表理解,可以更Pythonic地创建numbers

numbers = [(30, i) for i in range(100, 5100, 100)]

答案 1 :(得分:0)

您需要像下面这样更新功能:

import pandas as pd

numbers= []
for i in range(100,5100,100):
    numbers.append((30,i))
# zip is not required for numbers list.
df = pd.DataFrame(numbers)
df.to_csv('file.csv',header=False,index=False,index_label=None)

如果必须映射多个容器的相似索引,则使用zip。