python - 数据框中的计算和删除/创建列
问题描述
鉴于此示例数据框
Base Others B1 B2 Date
ABC
Shop 83.04 82.70 0.000 0.000 01012019
Shop 83.04 82.71 0.000 0.000 01012019
Shop 83.02 82.70 0.000 0.000 02012019
Shop 83.02 82.69 0.167 0.000 02012019
Shop 82.98 82.67 0.227 0.000 03012019
Shop 77.94 77.66 0.640 0.054 03012019
Shop 77.45 77.16 0.354 0.020 04012019
Shop 72.81 72.58 0.125 0.076 04012019
Shop 72.81 72.57 0.012 0.003 05012019
Shop 72.81 72.57 0.000 0.000 05012019
我想做以下计算:
(B1-B2)*1000
并将结果放在一个名为“Cal”的新列中。同时,我想在计算后将 B1 和 B2 从数据框中删除。
计算方面,我尝试了这一行:
cal_df = df.loc[((pd.to_numeric(df['B1']))-(pd.to_numeric(df['B2'])))*1000]
但是收到了一个显示数据帧值的 KeyError(实际上没有出现真正的错误语句)。
有人可以就此提出建议吗?也许我需要使用 numpy 或 groupby 函数?非常感谢。
解决方案
用于pop
提取列 - 从原始 DataFrame 中删除减去后:
df['new'] = (df.pop('B1') - df.pop('B2'))*1000
如果需要转换为数字和可能的一些非数字值:
df['new'] = (pd.to_numeric(df.pop('B1'), errors='coerce') -
pd.to_numeric(df.pop('B2'), errors='coerce'))*1000
推荐阅读
- angular - 可以将 Angular CLI 配置为生成具有不同扩展名的单元测试吗?
- javascript - 这段代码如何在 reduce 函数的上下文中工作?
- c# - 在 catch 中检索 Web 请求的响应时间
- javascript - 我如何通过终端启动 React 项目?
- c++ - 类链接方法与 C++ 中的 Makefile
- python - 使用 to_sql 将 pandas df 写入 mysql 时抛出错误
- javascript - 保存暗模式复选框切换到本地存储
- c++ - C/C++ 套接字 HTTP 请求:对等方重置连接
- scim2 - 是否有任何可用的 SCIM2 一致性测试实用程序
- angular - 为什么我不能使用 Angular 材质组件?