将python列表写入CSV

2024-10-04 01:29:16 发布

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

只是有一点挣扎获得正确的格式与csv输出文件。你知道吗

我有一个名为find in python的列表:

   [['dropbearid', 'distance'],
    ['DB_1487', 17.543651156695343],
    ['DB_1901', 24.735333924441772],
    ['DB_2800', 6.607094868078008]]

当我使用

import csv
out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL)
out.writerow(found)

我得到一个文件,当我在excel中打开时,它有值,但它有'dropbearid','distance',在一个单元格和'DB\u 1487','17.54…',在下一个单元格中,等等,都在第一行继续。你知道吗

有没有办法获得输出设置,这样“dropbearid”和“distance”被放置在两列中,而下面的所有列表都被放置在下面的行中?你知道吗

谢谢!你知道吗


Tags: 文件csvinimport列表db格式open
3条回答
import pandas as pd
found = [['dropbearid', 'distance'],['DB_1487', 17.543651156695343],['DB_1901', 24.735333924441772],['DB_2800', 6.607094868078008]]
dffound = pd.DataFrame(found)
header = dffound.iloc[0]
dffound = dffound[1:]
dffound.rename(columns = header)
dffound.tocsv("enter path here")

欢迎使用Stackoverflow。您将列表列表写入一行,这就是为什么在一个单元格中有两个值,因为您将found(这是两个元素的列表)的每个元素写入一个单元格。您需要遍历列表列表并将每个列表写入一行。这应该起作用:

import csv
out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL, newline='')
for row in found:
    out.writerow(row)

函数writerow()将写入一行。所以您需要使用writerows()并将newline参数设置为'',以避免文件中出现空行。你知道吗

found = [['dropbearid', 'distance'],
    ['DB_1487', 17.543651156695343],
    ['DB_1901', 24.735333924441772],
    ['DB_2800', 6.607094868078008]]
import csv
with open('myfile.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
    writer.writerows(found)

希望这有帮助!干杯!你知道吗

相关问题 更多 >