我有一个很大的数据表(例如3100000行和6列),我想提取一些数据子集并重新排列它们。
我尝试了以下代码:
tab=[]
tab.append(np.array(['Channel', 'Edge', 'Time', 'Sweep', 'Tag', 'DataLost']))
incl=[]
incl.append(np.array(['Mult', 'x1', 'x2', 'y1', 'y2']))
for i in range (0,max):
B=tab[tab[:,3]==str(i),:]
C1=B[B[:,0]==str(Voie_Stop_1),2]
C2=B[B[:,0]==str(Voie_Stop_2),2]
if len(C1)%2 ==0 and len(C2)%2 ==0 and len(C1) ==len(C2) :
nb_fragments=len(C1)/2
C1=C1.reshape(int(nb_fragments), 2)
C2=C2.reshape(int(nb_fragments), 2)
C1C2=np.concatenate((C1,C2), axis=1)
ligne=np.insert(C1C2, 0, nb_fragments,axis=1)
ligne=np.array(ligne)
for j in range(int(nb_fragments)):
incl.append(ligne[j])
ligne=C1C2[0]
unSTOP.append(ligne)
它正在执行我想要的操作,但是速度非常慢(5秒钟使i + 100)...要填充我的标签,我使用了“附加”功能,因为该论坛上有人告诉我,它比“级联”,的确在我的代码的第一部分中是正确的(此处未显示)...您能帮我.... ??? (我是python的新手...)
答案 0 :(得分:0)
根据我的经验,在Python中处理大型数据集的最快方法是使用pandas。在大熊猫中,您将数据导入名为DataFrame的表状结构中。然后,您可以使用API快速对数据执行操作。
根据数据的存储方式(csv,python字典,sql等),您可以使用pandas IO methods快速,轻松地将数据拉入内存:
import pandas as pd
df = pd.read_csv('/path/to/my/data.csv')
df
是您的数据框。然后,您可以filter,apply custom functions,而且速度更快。
如果您可以发布数据样本以及有关您要如何具体提取和重新安排数据的一些信息,我很乐意为您编写一个示例函数来帮助您完成工作。< / p>