Python с использованием melt, как кадрировать эти данные - PullRequest
0 голосов
/ 29 октября 2018

Имея данные, как указано ниже - мне нужно сгруппировать по адресу и Trans в 2 столбца - может помочь использование melt или любой другой функции в Python?

Id    name    address1   tran1    address2    tran2     address32     tran3
1     Vasu    chennai    3432     tamb        4432      cam           0121
2     het     tamil      32432    cheai       43543     vsda          3432
3     sfds    andh       12321    hyd         6754      nizh          7657     

нужны эти данные как

**************************
Id******name*****address*****Tran
1*****Vasu******chennai*****3432
2****het********tamil*******32432    
3***sfds******* andh*******12321    
1***Vasu*******tamb********4432      
2*****het******cheai*******43543     
3*****sfds****hyd**********6754      
1****Vasu*****cam*********0121
2****het*****vsda********3432    
3****sfds****nizh*******7657     

спасибо

Попробовал таким образом получить результат другим способом

data = pd.read_csv('C:DOCUMENTS/SAMP.csv') 
melt_data1 = pd.melt(data, 
                     id_vars=['id', 'name'], 
                     value_vars=['address1','tran1','address2','tran2','address32','tran3'],
                     var_name='Address', 'tRAN', 
                     value_name='Values') 
melt_data1.to_csv('c:/DOCUMENTS/SAM.CSV)

1 Ответ

0 голосов
/ 20 ноября 2018

Вам просто нужно использовать pd.concat для этого:

data1 = data.loc[:,['name','address1','tran1']].rename(columns={"address1": 
"address", "tran1": "tran"})
data2 = data.loc[:,['name','address2','tran2']].rename(columns={"address2": 
"address", "tran2": "tran"})
data3 = data.loc[:,['name','address3','tran3']].rename(columns={"address3": 
"address", "tran3": "tran"})

pd.concat([ data1 , data2 , data3])
...