要从列变量写入CSV表吗?

问题描述 投票:0回答:4

我是Python的初学者,如果很琐碎,但我无法解决问题,抱歉。

我有3个包含浮点数的列表。

mouse_x = [-0.01, -0.01, -0.01, -0.01, -0.01, -0.01, -0.01, -0.01, -0.01, -0.01]
mouse_y = [-0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888, -0.14888888888888888]
mouse_time = [1.5307196849607863, 1.581636800954584, 1.6135933389887214, 1.6362467749859206, 1.6675526530016214, 1.6996790579869412, 1.7314749069628306, 1.7635557259782217, 1.7962380870012566, 1.826124977960717]

我想做的就是结合这三个变量,使它们成为我的csv文件的3列。它应如下所示:

mouse_x, mouse_y, mouse_time
-0.01, -0.14888888888888888, 1.5307196849607863
-0.01, -0.14888888888888888, 1.581636800954584
-0.01, -0.14888888888888888, 1.6135933389887214
...
...

这是我尝试过的:

with open('my_file.csv', 'w', newline='') as f:
    thewriter = csv.writer(f)
    thewriter.writerow(['mouse_x', 'mouse_y', 'mouse_time'])
    counter = 0
    for x in mouse_x_list:
        thewriter.writerows(mouse_x_list[counter], mouse_y_list[counter], mouse_time_list[counter])
        counter +=1

这将产生以下错误:

TypeError:writerows()恰好接受一个参数(给定3个)

我将不胜感激!

python csv writing
4个回答
1
投票

您接受使用numpy吗?我发现这种应用非常简单:

您生成一个多维数组,其每一列都是您的列表之一:

import numpy as np

arr = np.array([mouse_x, mouse_y, mouse_time])

以这种方式,您可以通过mouse_x访问arr[:, 0],通过mouse_y访问arr[:, 1],并且通过mouse_time访问arr[:, 2]

一旦有了此数据结构,numpy将提供一个内置函数来保存数组:

np.savetxt('mouse.csv', arr.T, delimiter=',')

0
投票

如果要使用pandas

import pandas as pd
df=pd.DataFrame([mouse_x,mouse_y,mouse_time])
df.T.to_csv('my_file.csv', index=False, header=['mouse_x','mouse_y','mouse_time']))

0
投票

您还可以先使用熊猫制作数据框,然后再将其另存为csv文件:

     import pandas as pd

     df = pd.DataFrame()
     df.insert(0, 'mouse_x', mouse_x)
     df.insert(1, 'mouse_y', mouse_y)
     df.insert(2, 'mouse_time', mouse_time)
     df

输出:

        mouse_x mouse_y mouse_time
      0 -0.01   -0.148889   1.530720
      1 -0.01   -0.148889   1.581637
      2 -0.01   -0.148889   1.613593
      3 -0.01   -0.148889   1.636247
      4 -0.01   -0.148889   1.667553
      5 -0.01   -0.148889   1.699679
      6 -0.01   -0.148889   1.731475
      7 -0.01   -0.148889   1.763556
      8 -0.01   -0.148889   1.796238
      9 -0.01   -0.148889   1.826125

保存到csv:

     df.to_csv('name_file.csv')

0
投票

Numpy是有关存储在数组中的数据的最佳库之一。它还包括将数组直接保存到文件的实现。查看如何使用它here

© www.soinside.com 2019 - 2024. All rights reserved.