【发布时间】:2016-03-23 15:33:22
【问题描述】:
我必须阅读一些.csv 文件并进行一些操作。特别是我必须阅读.csv,其中数据存储在不同的列中。特别是数据具有以下格式:
myfile_0.csv
Time InfD Com ComN
0 3 4 0
1 2 5 1
该文件包含许多条目,我必须为不同的parameters 这样做,这个过程真的很慢。以下是我必须完成的任务
for i in parameters:
f = folder+'myfile_%d.csv'%i
df = pd.read_csv(f)
D = df.InfD / V
C = (df.Com/df.ComN)
size = TC - len(C)
if len(C) < TC:
CC = np.lib.pad(C, (0,size), 'constant', constant_values=(1))
DD = np.lib.pad(D, (0,size), 'constant', constant_values=(0))
cf = CC*(1-DD)
else:
C = C[0:TC]
D = D[0:TC]
cf = C*(1-D)
我想知道是否有更有效的方法来解决同样的问题。
【问题讨论】:
-
您将不得不为
parameters中的每个值读取整个文件。没有办法解决这个问题。 -
尝试使用
line_profiler来识别瓶颈,然后优化这些行。另外,您现在的问题是是/否问题,答案是“是的,可能”。 -
我在考虑使用
import csv而不是 pandas 数据框 -
如果您能提供更多信息,会更容易为您提供帮助。如果您有多个 TC 行,是否要对数据框进行切片?为什么?你为什么要填充
CC和DD?如果您将提供一个小的输入数据集(5-7 行),您希望如何处理数据的算法和预期的输出。我们可以尝试找到一种更快/更优化的方法来做到这一点。 -
另一个问题:每个参数都有一个 CSV 文件 - 是否要在处理后合并它们?