我有一个CSV文件,其中有288条记录,格式如下(仅提取前3条记录)
20210402,23:55,37684,4.758,0,0,0.000,16238,510,NaN,242.0,-500.000,0.000,500.000,-500.000,10.000,NaN;20210402,23:50,37684,4.758,0,0,0.000,16195,540,NaN,243.0,-530.000,0.000,530.000,-530.000,10.000,NaN;20210402,23:45,37684,4.758,0,0,0.000,16150,540,NaN,243.0,-550.000,0.000,550.000,-550.000,0.000,NaN;
字符串
如果我在记事本中打开此文件,则将其保存为连续字符串。如果我在Excel中打开它,则每个值都在一列中。第一条记录的最后一列与第二条记录的第一列共享,依此类推,如下所示
x1c 0d1x的数据
我试着吐字符串,所以有288个记录使用
with open('dailyData.csv','r') as file:
array = file.readlines()
array = [row.split(';') for row in array]
型
将“;”转换为“,但不拆分字符串
[20210402,23:55,37684,4.758,0,0,0.000,16238,510,NaN,242.0,-500.000,0.000,500.000,-500.000,10.000,NaN','20210402,23:50,37684.
有什么想法吗?
更新
我试着用Pandas
array = pandas.read_csv('dailyData.csv', delimiter=';', header=None)
print(array.columns)
型
这将返回
Int64Index([ 0,1,2,3,4,5,6,7,8,9,... 277,278,279,280,281,282,283,284,285,286],dtype='int64',length=287)
这意味着我可以处理任何记录,但不能处理记录中的元素。
只是希望能够寻址为array[r][c],其中r是0到287,c是0到16。
谢谢
嗨,卡米尔,我试过了
with open('dailyData.csv') as file:
for x in file:
columns = x.split(';')
for y in columns:
lines = y.split(',')
print(lines)
型
这将打印行,但不会创建我可以寻址的数组。
2条答案
按热度按时间doinxwow1#
不如这样吧:
字符串
输出:其中
3
是数组中列表的数量,每个列表都有16
值。型
上述规定允许:
只是希望能够寻址为array[r][c],其中r是0到287,c是0到16。
我假设你的数据是一个长的连续字符串,如你的问题所示。
如果你喜欢,可以很容易地将其转储到
pandas DataFrame
文件中,然后再转储到适当的.csv
文件中:型
ecbunoof2#
字符串