我知道pivot_table中有3个主要参数。索引,列和fill_value。
df = pd.pivot_table(df,index='userID',columns='days',fill_value=0) # Fill 0
由于内存问题,我无法转动数据框。
那么可以将index
拆分为小部分,然后将这些数据透视表合并在一起以解决此问题吗?
例如,userID
在范围(0,1000000)中,我想将它们切割为3个部分:(0,333333),(333333,666666)和(666666,1000000)。然后将这3个组合成一个数据透视表。
答案 0 :(得分:0)
是的,你可以这样做:
df_out = pd.concat([df.query('UserID < @i').pivot_table(index='UserID',
columns='days', fill_value=0) for i in [333333,666666,1000000]])
答案 1 :(得分:0)
使用np.array_split
pd.concat([x.pivot_table(index='UserID',\
columns='days', fill_value=0) for x in np.array_split(df, 3)])