python - 将 Pandas 数据框与其他数据框的因子相乘

标签 python pandas

多索引数据框的列,比如说,

df_multi = pd.DataFrame({'angles': [0, 3, 4, 4, 5, 6],
                 'degrees': [360, 180, 360, 360, 540, 720]},
                index=[['A', 'A', 'A', 'B', 'B', 'B'],
                       ['circle', 'triangle', 'rectangle',
                        'square', 'pentagon', 'hexagon']])
df_scale = pd.DataFrame({'factor': [0,1]},index = ['A','B'])
             angles  degrees
A circle          0      360
  triangle        3      180
  rectangle       4      360
B square          4      360
  pentagon        5      540
  hexagon         6      720

   factor
A       0
B       1

应该乘以来自另一个数据框的比例因子,其中给定级别的索引匹配。 我试过了

df_scale.mul(df_multi, level = 0, axis = 'index')

但这确实会产生三列 NaN 值,而不是

             angles  degrees
A circle          0        0
  triangle        0        0
  rectangle       0        0
B square          4      360
  pentagon        5      540
  hexagon         6      720

最佳答案

x = df_multi.mul(df_scale["factor"], level=0, axis="index")
print(x)

打印:

             angles  degrees
A circle          0        0
  triangle        0        0
  rectangle       0        0
B square          4      360
  pentagon        5      540
  hexagon         6      720

关于python - 将 Pandas 数据框与其他数据框的因子相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67765757/

相关文章:

python - 如何根据集团内的实体找到最大金额?

python - PyOpenGl 还是 pyglet?

python - 查找合并(外部 - 内部)Pandas DF 差异

python - 根据连续出现的值对数据帧进行分组

python - 添加具有不同列名的两个 Pandas 系列的值

python - 指数平滑平均

python - openpyxl 将数字格式设置为单元格但不起作用

python - Argparse python,在帮助菜单中删除子解析器列表

python - 从 Pandas 中的现有 df 创建新的 df - python

python - 使用django上传时创建目录