R语言如何按对应列名对两个dataframe执行逐元素除法运算
问题原因
Pandas 中两个 DataFrame 执行算术运算时,会自动同时对齐行索引和列名。你使用的 df2 只有1行,和拥有2行的 Df 行索引无法完全匹配,因此直接相除会出现缺失值或者维度不匹配报错,无法得到预期结果。
解决方法
你只需要将只有1行的 df2 转换为 Series 结构,再调用 div 方法指定按列对齐运算,即可让 df2 每个列的值作用到 Df 对应列的所有行上,代码示例如下:
# 方法1:提取df2第一行转为Series,按列对齐做除法 output = Df.div(df2.iloc[0], axis='columns') # 方法2:用squeeze将单行DataFrame转为Series,效果一致 output = Df.div(df2.squeeze(), axis=1) # 如果需要输出整数结果,可以追加类型转换 output = Df.div(df2.iloc[0], axis='columns').astype(int)
执行后即可得到你预期的运算结果:
std1 std2 std3 std4 0 1 2 2 1 1 2 5 3 2
内容的提问来源于stack exchange,提问作者Shrilaxmi M S
相关产品推荐
相关产品推荐

