python - pandas.loc 计算中的错误 - 切片数据帧的副本
问题描述
我有两个熊猫数据框,一个名为 df1,另一个名为 df2:
import pandas as pd
df1 = pd.DataFrame({'PERCENTAGE': [0.35,0.1105,0.0487,0.98],})
df2 = df1.loc[df1['PERCENTAGE'] > 0.4]
我正在尝试使用以下代码在 df2 中创建一个新列:
df2['NEW_COLUMN'] = 1 - df2['PERCENTAGE']
但我收到以下错误:
C:\PATH:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
"""Entry point for launching an IPython kernel.
有没有办法解决这个问题而不必直接在 df1 中构建此列?
解决方案
我们试试看df.loc[Query,Column]
m=df1.PERCENTAGE>0.4
df1.loc[m,'NewColumn']=1-df1.loc[m,'PERCENTAGE']
df2=df1.dropna()
PERCENTAGE NewColumn
3 0.98 0.02
推荐阅读
- python - torch-1.1.0-cp37-cp37m-win_amd64.whl 不是此平台支持的轮子
- javascript - 使用 CSS 或 JS 在图像边框上加载 Square
- java - 如何在 getClass().getResource() 中给出文件的正确路径
- javascript - 无法让 ChartJS xAxes 显示为分钟和秒
- jenkins - 来自groovy函数的美元符号Shell脚本后的非法字符串正文字符
- javascript - ApiRTC 令牌认证
- javascript - 在不考虑其直接父项的情况下获取开始和结束偏移值的范围
- sql - SQL Server - 选择多个列按 1 列分组
- reactjs - 如何在 GraphQL 中使用正则表达式检查数组
- php - Prestashop 1.6 将 tinymce 字段添加到管理员首选项