मैं अपने डेली-मीटर को खोए बिना एक पांडा कॉलम वैल्यू को विभाजित करने की कोशिश कर रहा हूं। यह stack-overflow है जिसे मैं अनुसरण कर रहा हूँ। जब मैं एक स्ट्रिंग पास करता हूं तो यह अच्छी तरह से काम कर रहा है, हालांकि जब मैं इसे '/ एम' से विभाजित करना चाहता हूं तो यह काम नहीं करता है। मैंने अलग रेगेक्स की कोशिश की, लेकिन काम भी नहीं लग रहा है। कोई सुझाव?

import pandas as pd 
ls = [
    {'ID': 'ABC',
     'LongString': '/m/04abc3 1 1 1 1 /m/04ccc32 3 3 3 3'},
    {'ID': 'CDE',
     'LongString': '/m/04abc4 2 2 2 2 /m/04ccc12 4 4 4 4'}
]

df = pd.DataFrame(ls)

df['LongString'] = df['LongString'].str.split('(?<=/m)\s') # tried removing `/` and put in `m` for testing. Did not do the trick. 

मैं इसे इस तरह दिखने की कोशिश कर रहा हूं। मुझसे यहां क्या गलत हो रहा है?

pandas dataframe format: 
ID  | LongString
ABC | ['/m/04abc3 1 1 1 1', '/m/04ccc32 3 3 3 3']
CDE | ['/m/04abc4 2 2 2 2', '/m/04ccc12 4 4 4 4']
1
sharp 23 जुलाई 2020, 05:31

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप /m द्वारा इसके बाद एक सफेद स्थान पर विभाजित करना चाहते हैं। रेगेक्स भाषा में, आप देखने के बजाय एक लुकहेड चाहते हैं।

प्रस्तावित समाधान:

df['LongString'] = df['LongString'].str.split('\s(?=/m)')
3
JuliettVictor 23 जुलाई 2020, 06:01