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