我有一個包含幾個字串模式的熊貓系列,如下所示:
stringsToSplit = ['6 Wrap',
'1 Salad , 2 Pepsi , 2 Chicken Wrap',
'1 Kebab Plate [1 Bread ]',
'1 Beyti Kebab , 1 Chicken Plate [1 Bread ], 1 Kebab Plate [1 White Rice ], 1 Tikka Plate [1 Bread ]',
'1 Kebab Plate [1 Bread , 1 Rocca Leaves ], 1 Mountain Dew '
]
s = pd.Series(stringsToSplit)
s
0 6 Wrap
1 1 Salad , 2 Pepsi , 2 Chicken Wrap
2 1 Kebab Plate [1 Bread ]
3 1 Beyti Kebab , 1 Chicken Plate [1 Bread ],...
4 1 Kebab Plate [1 Bread , 1 Rocca Leaves ], 1...
dtype: object
我想拆分和分解它,結果如下:
0 6 Wrap
1 1 Salad
1 2 Pepsi
1 2 Chicken Wrap
2 1 Kebab Plate [1 Bread ]
3 1 Beyti Keba
3 1 Chicken Plate [1 Bread ]
3 1 Kebab Plate [1 White Rice ]
3 1 Tikka Plate [1 Bread ]
4 1 Kebab Plate [1 Bread , 1 Rocca Leaves ]
4 1 Mountain Dew
為了做到這一點,explode我需要先split。但是,如果我使用split(',')它也會拆分[]我不想要的專案。我曾嘗試使用正則運算式拆分,但無法找到正確的模式。
我將不勝感激。
uj5u.com熱心網友回復:
您可以使用帶有負前瞻的正則運算式:
s.str.split(r'\s*,(?![^\[\]]*\])').explode()
輸出:
0 6 Wrap
1 1 Salad
1 2 Pepsi
1 2 Chicken Wrap
2 1 Kebab Plate [1 Bread ]
3 1 Beyti Kebab
3 1 Chicken Plate [1 Bread ]
3 1 Kebab Plate [1 White Rice ]
3 1 Tikka Plate [1 Bread ]
4 1 Kebab Plate [1 Bread , 1 Rocca Leaves ]
4 1 Mountain Dew
dtype: object
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444010.html
