我是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个)
我将不胜感激!
您接受使用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=',')
如果要使用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']))
您还可以先使用熊猫制作数据框,然后再将其另存为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')
Numpy是有关存储在数组中的数据的最佳库之一。它还包括将数组直接保存到文件的实现。查看如何使用它here。