Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. ZoneMaterialName1,ZoneMaterialName2,ZoneMaterialName3,ZoneMaterialName4
  2. Copper,Silver,Gold,Selenium:[[2.5,5,12,6],[2,8,2,3],[2,8,2,3],[1,0,,]]
  3. Aluminium,Sodium,,Titanium:[[3,14,,5],[13,5,,15],[1,0,0,],[1,0,0,]]
  4.  
  5. ZoneMaterialName1,ZoneMaterialName2,ZoneMaterialName3,ZoneMaterialName4
  6. Copper,Silver,Gold,Selenium:[[2.5,5,12,6],[2,8,2,3],[1,0,,]]
  7. Aluminium,Sodium,,Titanium:[[3,14,,5],[13,5,,15],[1,0,0]]
  8.  
  9. import pandas as pd
  10. import numpy as np
  11. df = pd.read_csv('/mnt/c/python_test/Materials.csv')
  12.  
  13. # replace nan with 'NA' for material names so they are not excluded from groupby
  14. df[['ZoneMaterialName1','ZoneMaterialName2','ZoneMaterialName3','ZoneMaterialName4']] =df[['ZoneMaterialName1','ZoneMaterialName2','ZoneMaterialName3','ZoneMaterialName4']].fillna('NA')
  15.  
  16. # Get List of thickness all values for each row
  17. df['combined'] = df.apply(lambda row: [row['ZoneThickness1'],row['ZoneThickness2'],row['ZoneThickness3'],row['ZoneThickness4']], axis=1)
  18.  
  19. # Groupby target columns, making a list of lists of thicknesses
  20. df.groupby(['ZoneMaterialName1','ZoneMaterialName2','ZoneMaterialName3','ZoneMaterialName4'])['combined'].apply(list)
  21.  
  22. # Get rid of duplicates
  23. df['combined'] = df['combined'].apply(lambda x: set(tuple(i) for i in x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement