python-3.x - 试图在 DataFrame 分配数据帧中的切片副本上设置一个值
问题描述
有什么方法可以重构我的代码以避免收到此警告?
试图在 DataFrame 中的切片副本上设置一个值。尝试改用 .loc[row_indexer,col_indexer] = value
# get the total number of users who paid off
paidOffTotaDataFrame = newDF.loc[(newDF.Loan_Status=='PAIDOFF')]
#create column paid off in X days
difference = newDF.Paid_Off_Time - newDF.Effective_Date
paidOffTotaDataFrame['Paid_Off_In_Days'] = difference
我也试过
paidOffTotaDataFrame.loc[:,'Paid_Off_In_Days'] = difference
print(paidOffTotaDataFrame.apply(lambda row: "paid off column " + str(row['Paid_Off_In_Days']), axis=1))
解决方案
复制切片,所以它是一个新的 df 而不是对旧 df 切片的引用:
paidOffTotaDataFrame = newDF.loc[(newDF.Loan_Status=='PAIDOFF')].copy()
仅使用新的 df:
paidOffTotaDataFrame['Paid_Off_In_Days'] = paidOffTotaDataFrame.Paid_Off_Time - paidOffTotaDataFrame.Effective_Date
推荐阅读
- python - 来自 pandas DataFrame 的字典 {cell1:cell2}
- c# - 如何注册 IFilter
> 在 MassTransit 中使用 Autofac 扩展时 - python-3.x - 根据单元格是否在外部元组值之间分配值
- c - gcc 选项中何时需要“f”
- regex - 如何只允许输入字段中的某些字符
- javascript - Vue.js:如何将登录模式放在下拉菜单中?
- ruby - 在检测到新的 metasploit 会话时运行自定义脚本
- sql - PostgreSQL 等效于 RESTRICT ON DROP
- android - 如何创建包(.aab)来发布应用程序?
- sql - oracle sql父子多列