python - 尝试使用 apply 对 Panda DataFrame 中的不同键进行操作
问题描述
我有一个看起来像这样的 Panda DataFrame:
df = pd.DataFrame({'ID' : ['O60829','O60341','Q9H1R3'], 'TOTAL_COVERAGE' : ['yes','yes','no'], 'BEG_D' : ['1','1','500'], 'END_D' : ['102','25','600'], 'BEG_S' : ['1','1','1'], 'END_S': ['102','25','458']})
我想遍历每一行,检查“TOTAL_COVERAGE”的值,如果是“是”,对其他值执行数学运算,即:
for index, row in df.iterrows():
df['%'] = df.apply(lambda x : ((int(x['END_S'])*100)/int(x['END_D'])) if x['TOTAL_COVERAGE'] == 'yes' else '')
但我得到了错误:KeyError: 'TOTAL_COVERAGE'
必须有一个我没有看到的简单修复。提前致谢!
解决方案
您可以在没有iterrows
and的情况下apply
通过直接等同来做到这一点:
df['%'] = ''
df.loc[df['TOTAL_COVERAGE'] == 'yes', '%'] =
df['END_S'].astype(int) * 100 / df['END_D'].astype(int)
推荐阅读
- r - R:根据多个条件填充向量
- java - HttpClient 的 HttpResponse 返回非格式化字符串
- reactjs - 如何使用反应钩子获得孩子的参考?
- google-sheets - 根据谷歌表格中的给定条件重复行 N 次
- python - 如何根据另一个观察在 scanpy 上添加观察类别?
- python - Python datetime isoformat - 从字符串计算直到 bithday 的天数 - 转换为 datetime.datetime 对象
- javascript - 在转换器 konva.js 中为旋转器填充颜色
- php - 无效的 JSON 响应,尝试将数据从表单发送到操作文件
- chatbot - AIML 解析器示例
- php - WP 仅获取父类别的 ID