Я начинаю с двух фреймов данных - один заполнен фиктивными переменными для дня недели, а другой заполнен фиктивными значениями для часа дня (HE - окончание часа).
df1 = дни недели = n x m, где n - количество наблюдений, m - 6:
Mon Tue Wed Thu Fri Sat
0 1 0 0 0 0 0
1 0 1 0 0 0 0
2 0 0 1 0 0 0
3 0 0 0 1 0 0
df2 = часы дня = n x l, где n - это число наблюдений, m - 23:
HE1 HE2 HE3 HE4 HE5 ... HE22 HE23
0 1 0 0 0 0 ... 0 0
1 0 1 0 0 0 ... 0 0
2 0 0 1 0 0 ... 0 0
3 0 0 0 1 0 ... 0 0
Я хочу создать новый df с размерами n x (m × l), где m × l = 6 * 23 = 138:
MonHE1 MonHE2 MonHE3 MonHE4 MonHE5 ... SatHE22 SatHE23
0 1 0 0 0 0 ... 0 0
1 0 1 0 0 0 ... 0 0
2 0 0 1 0 0 ... 0 0
3 0 0 0 1 0 ... 0 0
Я успешен с этим:
hoursXdays = pd.DataFrame()
Mon = hours.multiply(days['Mon'],axis='index').add_prefix('Mon')
Tue = hours.multiply(days['Tue'],axis='index').add_prefix('Tue')
Wed = hours.multiply(days['Wed'],axis='index').add_prefix('Wed')
Thu = hours.multiply(days['Thu'],axis='index').add_prefix('Thu')
Fri = hours.multiply(days['Fri'],axis='index').add_prefix('Fri')
Sat = hours.multiply(days['Sat'],axis='index').add_prefix('Sat')
hoursXdays = pd.concat([Mon, Tue, Wed, Thu, Fri, Sat],axis=1)
Мне нужно сделать это для гораздо большего количества dfs, чем просто эти несколько Если я смогу это обобщить, буду признателен за помощь.
В принципе, есть ли в пандах способ умножить два кадра данных размером n x m, n x l, чтобы создать новое значение df измерения n x (m умножить на l)?