2017-06-19 98 views
2

我试图找到一个简单的方法,打破了以下数据框:副本排在熊猫数据帧

COL_A COL_B COL_C COL_D 
VAL1 VAL2 VAL3 OFFER1|OFFER2|OFFER3 

COL_A COL_B COL_C COL_D COL_Y 
VAL1 VAL2 VAL3 ... OFFER1 
VAL1 VAL2 VAL3 ... OFFER2 
VAL1 VAL2 VAL3 ... OFFER3 
+0

希望链接帮助https://stackoverflow.com/questions/35166359/how-to-unnest-cells-in-a-dataframe-employing-pandas-and-python – Wen

回答

2

让我们用pd.concatstr.splitfillna

pd.concat([df,df.COL_D.str.split('|',expand=True).T],axis=1).rename(columns={0:'COL_Y'}).fillna(method='ffill') 

输出:

COL_A COL_B COL_C     COL_D COL_Y 
0 VAL1 VAL2 VAL3 OFFER1|OFFER2|OFFER3 OFFER1 
1 VAL1 VAL2 VAL3 OFFER1|OFFER2|OFFER3 OFFER2 
2 VAL1 VAL2 VAL3 OFFER1|OFFER2|OFFER3 OFFER3 
+0

这看起来很有前途,但我很获得520,000行左右的MemoryError。内存密集? –

+0

并不是极端的,你的行可能因数据而爆炸。 –

+0

我甚至把它缩减到:索引80 RO_NUMBER 4104184 VIN 4104184 优惠4104184 dtype:int64和我仍然得到memoryError与大量的内存 –