Как создать несколько столбцов из значений одного столбца?

#python-3.x #pandas #dataframe #merge #multiple-columns

#python-3.x #pandas #фрейм данных #слияние #несколько столбцов

Вопрос:

У меня есть фрейм данных, и я хочу создать новые столбцы на основе значений одного и того же столбца, и в каждом из этих столбцов я хочу, чтобы значения были суммой повторений таблички за время.

Итак, у меня есть этот фрейм данных:

    Val_Tra.Head():

                             Plate                          EURO    
   Timestamp                            
   2013-11-01 00:00:00               NaN                    NaN
   2013-11-01 01:00:00  dcc2f657e897ffef752003469c688381    0.0 
   2013-11-01 02:00:00  a5ac0c2f48ea80707621e530780139ad    6.0 
  

Итак, у меня есть столбец EURO, который выглядит следующим образом:

    Veh_Tra.EURO.value_counts():

   5    1590144
   6     745865
   4     625512
   0     440834
   3     243800
   2      40664
   7      14207
   1       4301 
  

И это мой желаемый результат:

                                        Plate               EURO_1    EURO_2    EURO_3    EURO_4    EURO_5    EURO_6   EURO_7    
   Timestamp                            
   2013-11-01 00:00:00               NaN                    NaN      NaN        NaN       NaN        NaN        NaN     NaN
   2013-11-01 01:00:00  dcc2f657e897ffef752003469c688381    1.0      NaN        NaN        NaN       NaN        NaN     NaN 
   2013-11-01 02:00:00  a5ac0c2f48ea80707621e530780139ad    NaN      NaN        1.0        NaN       NaN        NaN     NaN
  

Итак, в основном, что я хочу, это сумма, в которой каждый раз, когда значение таблички повторяется для определенного типа евро в течение определенного времени.

Любые предложения будут высоко оценены, спасибо U.

Ответ №1:

Это больше похоже на get_dummies проблему

 s=df.dropna().EURO.astype(int).astype(str).str.get_dummies().add_prefix('EURO')
df=pd.concat([df,s],axis=1,sort=True)
df
Out[259]: 
                                               Plate  EURO  EURO0  EURO6
2013-11-0100:00:00                               NaN   NaN    NaN    NaN
2013-11-0101:00:00  dcc2f657e897ffef752003469c688381   0.0    1.0    0.0
2013-11-0102:00:00  a5ac0c2f48ea80707621e530780139ad   6.0    0.0    1.0