我从两个数据框开始 - 一个填充了一周中某天的虚拟变量,另一个填充了一天中的某个小时的虚拟变量(HE - 小时结束)。df1 = 星期几 = nxm,其中 n 是观察次数,m 是 6: Mon Tue Wed Thu Fri Sat0 1 0 0 0 0 01 0 1 0 0 0 02 0 0 1 0 0 03 0 0 0 1 0 0df2 = 一天中的小时数 = nxl,其中 n 是 obs 的数量,m 是 23: HE1 HE2 HE3 HE4 HE5 ... HE22 HE230 1 0 0 0 0 ... 0 01 0 1 0 0 0 ... 0 02 0 0 1 0 0 ... 0 03 0 0 0 1 0 ... 0 0我想创建一个尺寸为 nx(m 乘以 l)的新 df,其中 m 乘以 l = 6*23 = 138: MonHE1 MonHE2 MonHE3 MonHE4 MonHE5 ... SatHE22 SatHE230 1 0 0 0 0 ... 0 01 0 1 0 0 0 ... 0 02 0 0 1 0 0 ... 0 03 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 执行此操作,而不仅仅是这几个。如果有任何方法可以概括这一点,我将不胜感激。基本上,pandas 有没有办法将两个数据帧的维度 nxm、nxl 相乘,以生成维度为 nx(m 乘以 l)的新 df?
2 回答

婷婷同学_
TA贡献1844条经验 获得超8个赞
你可以在这里使用 for 循环
pd.concat([hours.multiply(days[x],axis='index').add_prefix(x) for x in days.columns],1)
添加回答
举报
0/150
提交
取消