多索引数据框的列,比如说,
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/