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

2024-04-20 03:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: csv方法inimportfalsepandasdffor
2条回答

您需要如下更新您的函数:

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。你知道吗

只要替换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])))将创建一个具有行值元组(30100)、(30200)、(30300)等的一列数据帧

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

只要做print(df.head(20))就可以看到效果。你知道吗

顺便说一句,创建numbers的一种更为python的方法是使用列表理解:

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

相关问题 更多 >