[редактировать]
Мне бы хотелось, чтобы в первом столбце ('CUS_ID') все 'DAY OF WEEK' сначала
, а затем TIME_HOUR CUS_ID затем
просто конкатенация возвращает сначала все дни недели cus_id
, а затем возвращает TIME_HOUR всех cus_id далее ....
-
Как объединить кадры данных, используя только один столбец?Есть 2 кадра данных, и я просто хочу объединить их в 1 столбец, у которого размер данных каждого столбца имеет значение
У меня есть такой кадр данных:
print(raw_data.head(10))
CUS_ID TIME_ID TIME_HOUR DAY
0 1176 2012083016 16h THU
1 1176 2013030418 18h MON
2 1192 2012091609 09h SUN
3 1192 2012101310 10h SAT
4 120 2012121410 10h FRI
5 120 2012121915 15h WED
6 120 2012121915 15h WED
7 1269 2012070914 14h MON
8 1269 2012071309 09h FRI
9 1269 2013031414 14h THU
Я сделал новыйфрейм данных с использованием 'groupby' вот так:
df_day = raw_data.groupby(['CUS_ID','DAY']).size()
df_time = raw_data.groupby('CUS_ID').TIME_HOUR.value_counts()
df_concat = pd.concat([df_day, df_time] ,axis=1, join='outer')
print(df_concat.head(30))
DAY TIME_HOUR
2 01h NaN 6.0
02h NaN 3.0
03h NaN 2.0
04h NaN 1.0
05h NaN 15.0
06h NaN 4.0
07h NaN 7.0
08h NaN 22.0
09h NaN 214.0
10h NaN 515.0
...
FRI 925.0 NaN
MON 956.0 NaN
SAT 61.0 NaN
THU 1267.0 NaN
TUE 1334.0 NaN
WED 869.0 NaN
3 07h NaN 50.0
То, что мне нравится получать, выглядит так:
2 01h 6.0
02h 3.0
03h 2.0
04h 1.0
05h 15.0
...
FRI 925.0
MON 956.0
SAT 61.0
THU 1267.0
TUE 1334.0
WED 869.0
Пожалуйста, помогите ..