#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