我从两个数据帧开始-一个在星期几填充虚拟变量,另一个在一天的小时填充虚拟变量(HE-小时结束)。
df1 =一周中的天数= nxm,其中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 =一天中的小时数= nxl,其中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
我想创建一个尺寸为nx(m×l)的新df,其中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)
我将需要这样做,而不仅仅是少数几个。如果有什么可以概括的方法,我将不胜感激。
基本上,在熊猫中,是否有一种方法可以将两个维度为nxm,nxl的数据帧相乘,以生成维度为nx(m乘以l)的新df?
您可以在这里使用for循环
pd.concat([hours.multiply(days[x],axis='index').add_prefix(x) for x in days.columns],1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句