熊猫加入操作(非常大的数据)

时间:2019-10-14 11:31:43

标签: python pandas numpy dataframe

我有一个大约有500万行的pandas DataFrame。这些列代表一种键值格式。

示例:-'时间','P1','Q1','P2','Q2'....'P20','Q20'(共21列) P1,P2,... P20可以采用100..1000范围内的各种值。我需要创建一个数据帧,其中P1..P20的值成为键(键范围为100..1000)和相应的值Q1,.. Q20应该是每个单独的列。 (现在您有500万列)

这就像第一个数据帧的转置(缺少键值为0)。

当前,我正在使用df.ix []使用相应的列值转换字典中的每一行,并为其创建一个数据框,然后进行连接。

for i in range(1, len(df.index)):
    print(i)
    d = {'Price' : df.ix[:,list(range(2, 81, 2))].loc[i].values, 'Qty': df.ix[:,list(range(3, 82, 2))].loc[i].values}
    master1 = pd.DataFrame(d)
    master1.set_index('Price', inplace=True)
    master = master.join(master1, rsuffix=i)

对于少量数据,这很好,但是在5百万行中,它占用了太多的内存和时间。有什么办法可以使速度更快?

EndGoal :- 
Current dataFrame Data :-
T1 P1 Q11 
T1 P2 Q21
T1 P3 Q31
T2 P1 Q12
T2 P2 Q22
T3 P3 Q32

Output :- 
P1 Q11 Q12
P2 Q21 Q22
P3 Q31 Q32

-Arpit

0 个答案:

没有答案