我正在尝试优化我的代码,以减少运行数据集所需的时间。
我正在使用一个.csv文件,其中有三列:time_UTC、vmag 2D和vdir。数据集约为1420000行(一百四十二万行)。
在我的Mac电脑上运行这个周期需要15/20分钟,我敢肯定我把一些复杂的东西花了这么多时间。(我相信处理器足够好,可以更快地运行这段代码)。
import pandas as pd
path_data = '" *insert a path here* "'
file = path_data + ' *name of the .csv file* '
data = pd.read_csv(file)
time_UTC = []
vmag2D = []
vdir = []
for i in range(len(data)):
x = data.iloc[i][0]
x1 = x.split(' ')
x2 = x1[1].split(';')
date = x.split(' ')[0]
time_UTC.append(x2[0])
vmag2D.append(x2[1])
vdir.append(x2[2])
代码解析.csv文件中的每一行,每一行都有相同的“模板”:* '一九九四年一月一日零时零五分;0.52; 193英尺*
2条答案
按热度按时间ycl3bljg1#
你的代码不需要使用任何类型的for循环,你正在使用panda阅读CSV,但是你似乎没有指定正确的参数。
如果你运行这个函数,你得到的变量(
time_UTC
,...)将是pandas.Series
类型,你可以用.to_list()
把它们转换成list
,或者用.values
访问numpy数组。注意,我在panda CSV解析器中指定了
engine='c'
,它使用的是原生的C解析器,比Python解析器更快,因为这里处理的是一个大文件。vdzxcuhz2#
您可以一次拆分整列