我刚开始使用python,并且在将数据列表从python导出到csv时遇到一些问题。
我有一些值数组,每个值对应一个特定时间。我想要的是在csv上复制这些数组(所有数组都具有相同的长度),以便每一行都显示该特定时刻的所有变量的值。我写的是:
with open ('Risultati.csv', 'w', newline='' ) as f:
thewriter=csv.writer(f)
thewriter.writerow(['x','y','z','w'])
for i in range(0,len(x)):
thewriter.writerow(['x[%i]', 'y[%i]','z[%i]','w[%i]'])
,但在每一行中获得的csv中都是x[%i] y[%i] z[%i] w[%i]
。
我还希望每个值列表都与标题对齐,就像在带有Excel的表中一样。
我希望我能说清楚。预先谢谢你。
答案 0 :(得分:0)
以下内容如何:
import csv
import random
x = random.sample(range(10, 30), 5)
y = random.sample(range(10, 30), 5)
z = random.sample(range(10, 30), 5)
w = random.sample(range(10, 30), 5)
with open ('out.csv', 'w', newline='' ) as f:
thewriter=csv.writer(f)
thewriter.writerow(['x','y','z','w'])
for i in range(0,len(x)):
thewriter.writerow([x[i], y[i], z[i], w[i]])
给你:
$ python3 ./test.py
$ cat ./out.csv
x,y,z,w
18,23,17,25
23,27,16,26
15,18,28,10
12,15,23,18
26,29,21,27
我强烈建议您阅读有关python列表的教程!那里有很多,例如this one
答案 1 :(得分:0)
是否可以创建pandas Dataframe然后将其立即保存到文件中? 下面的小例子:
import pandas as pd
# buffer for data
values = []
# here adding exemplary rows
values.append({'x':1, 'y':2, 'z':3, 'w':4})
values.append({'x':4, 'y':5, 'z':6, 'w':7})
# convert to df
df = pd.DataFrame(values)
# save to csv
df.to_csv('file.csv', index=None)
答案 2 :(得分:0)
@urban对原始帖子的评论似乎正确。
不过,我还是建议您看一下Pandas库(无论如何,您可能仍会使用它)。 您只需要:
import pandas as pd
df = pd.DataFrame() # create a new empty DataFrame
df['x'] = x # fill it with values
df['y'] = y
df['z'] = z
df['w'] = w
df.to_csv('.../file.csv', index=None)
Pandas还允许您使用df.to_excel()
,df.to_parquet()
等来将输出保存为其他文件格式。