0

我刚刚开始使用 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 表格中一样。

我希望我说清楚了。先感谢您。

4

3 回答 3

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 列表的教程!那里有很多,例如这个

于 2020-06-23T08:52:00.007 回答
0

难道不能创建熊猫数据框然后立即将其保存到文件中吗?下面的小例子:

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)
于 2020-06-23T08:52:16.920 回答
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()等将输出保存为其他文件格式。

于 2020-06-23T08:58:56.930 回答