m8_

pandas groupby and compare dates

m8_
Aug 21st, 2019
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.08 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. import os
  4.  
  5. data = [[100,'A','1','','','8/1/2015','CA2.2','','','','','','','',''],
  6.         [100,'A','2','','','7/1/2019','CA2.0','8/21/2019','','','','','','',''],
  7.         [100,'B','1','','','','','','CA2.2','6/15/2018','6/15/2016','8/1/2019','','',''],
  8.         [100,'B','2','','','','','','CA2.0','12/15/2018','12/15/2016','','','',''],      
  9.         [100,'B','3','','','','','','CA2.0','12/15/2018','12/15/2016','8/21/2019','','',''],
  10.         [100,'C','1','','','','','','','','','','6/15/2016','CA2.2',''],
  11.         [100,'C','2','','','','','','','','','','12/15/2017','CA2.0','8/21/2019'],
  12.         [100,'Rec','','6/12/2019','8/1/2019','','','','','','','','','',''],
  13.         [200,'A','1','','','8/1/2015','CA2.2','','','','','','','',''],
  14.         [200,'A','2','','','7/1/2015','CA2.0','8/21/2019','','','','','','',''],
  15.         [200,'B','1','','','','','','CA2.2','6/15/2018','6/15/2016','8/1/2019','','',''],
  16.         [200,'B','2','','','','','','CA2.0','12/15/2018','12/15/2016','','','',''],      
  17.         [200,'B','3','','','','','','CA2.0','12/15/2018','12/15/2016','8/21/2019','','',''],
  18.         [200,'C','1','','','','','','','','','','6/15/2016','CA2.2',''],
  19.         [200,'C','2','','','','','','','','','','12/15/2017','CA2.0','8/21/2019'],
  20.         [200,'Rec','','6/12/2019','8/1/2019','','','','','','','','','',''],]
  21.  
  22. df = pd.DataFrame(data,columns=['Cust_ID','Dep','Order_Num','Rec_Date1',
  23.                                 'Rec_DateX','A_Date1','A_Loc1','A_DateX',
  24.                                 'B_Loc1','B_Date1','B_Date2','B_DateX',
  25.                                 'C_Date1','C_Loc1','C_DateX'])
  26.  
  27. # replace blanks with np.NaN
  28. df.replace(r"^s*$", np.nan, regex=True, inplace = True)
  29.  
  30. # Add loc column and populate
  31. df.insert(loc=3, column="Site", value=np.nan)
  32. df.insert(loc=0, column="Result", value=np.nan)
  33.  
  34. df.loc[df["A_Loc1"].notna(),
  35.        "Site"] = df["A_Loc1"]
  36.  
  37. df.loc[df["B_Loc1"].notna(),
  38.        "Site"] = df["B_Loc1"]
  39.  
  40. df.loc[df["C_Loc1"].notna(),
  41.        "Site"] = df["C_Loc1"
  42.  
  43. df.to_csv("test_df.csv", index = False)
Advertisement
Add Comment
Please, Sign In to add comment