首页 > 解决方案 > 试图在 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))

标签: python-3.xpandas

解决方案


  1. 复制切片,所以它是一个新的 df 而不是对旧 df 切片的引用:paidOffTotaDataFrame = newDF.loc[(newDF.Loan_Status=='PAIDOFF')].copy()

  2. 仅使用新的 df:paidOffTotaDataFrame['Paid_Off_In_Days'] = paidOffTotaDataFrame.Paid_Off_Time - paidOffTotaDataFrame.Effective_Date


推荐阅读