要通过csv输出文件获得正确的格式需要一些努力。
我在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_1487”,“ 17.54 ...”,依此类推。第一行。
是否有一种获取输出设置的方法,所以将'dropbearid'和'distance'放在两列中,并将下面的所有列表放在下面的行中?
谢谢!
答案 0 :(得分:4)
欢迎使用Stackoverflow。将列表列表写到一行,这就是为什么在一个单元格中有两个值的原因,因为在单元格中写入了found
的每个元素(这是两个元素的列表)。您需要遍历列表列表,并将每个列表写入一行。这应该可行:
import csv
out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL, newline='')
for row in found:
out.writerow(row)
答案 1 :(得分:1)
函数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)
希望这会有所帮助!干杯!
答案 2 :(得分:1)
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")
答案 3 :(得分:0)
使用pandas DataFrames将列表写入CSV文件,这使格式化变得更加容易
self.tabBarController?.tabBar.isUserInteractionEnabled = false
答案 4 :(得分:0)
您将使用 writerows 函数而不是 writerow 函数将子列表的每个项目都写为一列。
with open('myfile.csv', 'w+') as csv_file:
writer = csv.writer(csv_file, delimiter=',')
writer.writerows(d)
答案 5 :(得分:0)
为此使用熊猫库。
import pandas as pd
df = pd.DataFrame(found, columns=['dropbearid', 'distance'])
df = df.drop(0) # drop the header row
df.to_csv('Found.csv', index=False)