fork download
  1. import pandas as pd
  2. import re
  3.  
  4. data = {
  5. 'engine': [
  6. '150 HP 2000L Fuel: Petrol 4 cylinders',
  7. 'Fuel: Diesel',
  8. '180 HP 2500L Fuel: Petrol 6 cylinders',
  9. '120 HP Fuel: Gasoline',
  10. '130 HP 1600L'
  11. ]
  12. }
  13.  
  14. df = pd.DataFrame(data)
  15. def extract_engine_info(engine):
  16. hp = re.search(r'(\d+)\s*HP', engine)
  17. size = re.search(r'(\d+)\s*L', engine)
  18. fuel = re.search(r'Fuel:\s*([A-Za-z]+)', engine)
  19. cylinders = re.search(r'(\d+)\s*cylinders', engine)
  20.  
  21. return {
  22. 'horse_power': hp.group(1) if hp else None,
  23. 'engine_size': size.group(1) if size else None,
  24. 'fuel_type': fuel.group(1) if fuel else None,
  25. 'cylinders': cylinders.group(1) if cylinders else None
  26. }
  27. engine_info = df['engine'].apply(extract_engine_info)
  28. engine_df = pd.DataFrame(engine_info.tolist())
  29. df = pd.concat([df, engine_df], axis=1)
  30.  
  31. print(engine_df)
Success #stdin #stdout 0.38s 58088KB
stdin
Standard input is empty
stdout
  horse_power engine_size fuel_type cylinders
0         150        2000    Petrol         4
1        None        None    Diesel      None
2         180        2500    Petrol         6
3         120        None  Gasoline      None
4         130        1600      None      None