python - 将一个数字除以熊猫中列的所有值
问题描述
df1 有一列(总计),其中 2 个值分别为 5000 和 1000,ID 分别为 A 和 B。df2 有一列(标记)有 10 个值,其中前 5(100,200,300,400,500)个值的 ID 为 A,接下来的 5 个值的 ID 为 B(10,20,30,40,50)。现在我必须得到预期的输出
id final_value
- A 50
- A 25
- A 16.6
- A 12.5
- A 10
- B 100
- B 50
- B 33.3
- B 25
- B 20
我的代码是
new_df = df1['total']/df2['marks']
但我得到了输出
A 50
B 100
其余的NaN
解决方案
熊猫分部逐个元素地使用两个“列”(系列)。
如果要使用“id”作为链接进行划分,则必须在之前合并数据框:
df1 = pd.DataFrame([[5000, 'A'], [1000, 'B']], columns=['test', 'id'])
df2 = pd.DataFrame([[100, 'A'], [200, 'A'], [300, 'A'], [400, 'A'], [500, 'A'], [10, 'B'], [20, 'B'], [30, 'B'], [40, 'B'], [50, 'B']],columns=['marks', 'id'])
df3 = df1.merge(df2, on='id')
df3['test']/df3['marks']
推荐阅读
- c++ - 为什么当我期望 126 并且它给出 254 时,ReadFile 给出错误的值?
- javascript - 通过四舍五入寻找不确定性
- ruby - Chrome 分离选项不再起作用
- c# - 'TestController.Post()':并非所有代码路径都返回值
- excel - Odoo 13考勤模块如何设置内部用户上传和导入excel文件的权限?
- google-cloud-storage - 使用签名 URL 将图像文件上传到谷歌云时出现 CORS 错误
- compiler-optimization - 什么是编译器设计中的局部和全局优化?
- spring - Spring 全局客户端拦截器
- c# - 列表
- > 所有列表中存在的所有项目
- github - 无法从 macs 终端添加提交和推送代码到 github