我有一个矩阵
id |v1_m1 v2_m1 v3_m1 f_m1 v1_m2 v2_m2 v3_m2 f_m2|
1 | 0 .5 .5 4 0.1 0.3 0.6 4 |
2 | 0.3 .3 .4 8 0.2 0.4 0.4 7 |
我想要的是将m1中的每个v乘以f_m1列,并将所有带后缀“_m2”的v列乘以ghe f_m2列
我期望的输出如下:
id |v1_m1 v2_m1 v3_m1 v1_m2 v2_m2 v3_m2 |
1 | 0 2 2 0.4 1.2 2.4 |
2 | 2.4 2.4 3.2 1.4 2.8 2.8 |
Tags:
您可以通过一些奇特的数据帧重塑来实现这一点:
输出:
详情:
split
stack
,将m#改为行,留下四列f和 三个vfilter
,我们可以通过f选择v列和mul
tiply 通过选择单个列并使用squeeze
来创建序列 从单列数据帧创建pd.Seriesunstack
将m#级别返回到列假设您的矩阵是一个名为df的数据框架,如果您喜欢,我想推荐一种列表理解方法
对于这个问题的更大版本,它应该是最快的
解释-
[('v1_m1', 'f_m1'), ('v2_m1', 'f_m1'), ('v1_m2', 'f_m2')]
df.items()
的结构)相关问题 更多 >
编程相关推荐