熊猫将多列相乘以创建新的df

熊宝宝

我从两个数据帧开始-一个在星期几填充虚拟变量,另一个在一天的小时填充虚拟变量(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?

BEN_YO

您可以在这里使用for循环

pd.concat([hours.multiply(days[x],axis='index').add_prefix(x) for x in days.columns],1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从熊猫DF列名和值创建新列

熊猫:将列值乘以组总和

如何将多列乘以熊猫中的一列

Python代码将两列相乘,然后用值创建新列

熊猫:将值上的列分组并创建新的列标题

Python-DataFrame:将多列乘以另一列并保存在新列中

不断地将许多列相乘以形成一个新变量

将两个熊猫数据帧相乘以重复数据一定次数

熊猫:通过汇总不同df的列来创建新df的Python方式

熊猫DF。将值映射到新列,但行不同。DF有多重指数

如何将熊猫列与多索引数据框的一部分相乘

将多维矩阵相乘以获得具有新列名的新数据框

如何将多列产品创建为新列熊猫

熊猫在循环中乘以多列

在分组的熊猫df中使用IF-THEN创建新列

将熊猫df乘以2个常数,从而创建2个dfs

将熊猫数据框中的两列相乘,并创建一个包含解决方案的新列

将多列中的行值汇总到熊猫df中的新列中

有没有办法在使用熊猫将第二列中的值乘以第三列中的值分组时相乘?

用熊猫遍历df以创建新列

熊猫将dataframe列与groupby结果相乘

Pandas DataFrame 乘以列并创建新列

如何将熊猫数据帧的两列相乘(行乘法)并将结果存储在新列中?

将 Pandas 列乘以多索引值

熊猫将多索引与另一列相乘

动态乘以多列熊猫

将 ifelse 应用于多列并创建新列

将 data.frame 拆分为矩阵并将对角线元素相乘以生成新列

熊猫:将列从另一个df插入到某个位置的新df