2017-06-19 6 views
2

Ich versuche, eine einfache Möglichkeit zu finden, den folgenden Datenrahmen zu brechen:Kopie Reihen in Pandas Datenrahmen

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

zu

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

Hoffnung auf den Link Hilfe https://stackoverflow.com/questions/35166359/how-to-unnest-cells-in-a-dataframe-employing-pandas-and-python – Wen

Antwort

2

der verwenden Lassen pd.concat, str.split und fillna:

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

Ausgabe:

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

Das sieht sehr vielversprechend aus, aber ich bin Holen von MemoryError mit 520.000 Zeilen oder so. Ist die Erinnerung intensiv? –

+0

Nicht extrem, Ihre Zeilen explodieren möglicherweise aufgrund der Daten. –

+0

Ich habe es sogar auf: Index 80 RO_NUMBER 4104184 VIN 4104184 bietet 4104184 dtype: int64 und ich bekomme immer noch MemoryError mit viel Speicher –

Verwandte Themen