![](/img/trans.png)
[英]Pandas DataFrame: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
[英]pandas value is trying to be set on a copy of a slice from a DataFrame
this is my code: my dataframe DF is based on this: index int64 FiscalYear int64 GL object GLID int64 GL_Debit float64 GL_Credit float64 month object Solde de fin float64
DF.sort_values(by=['GL', 'month'], inplace=True)
DF['Variation des périodes'] = DF.groupby([ 'GL'])['Solde de fin'].diff().fillna(DF['Solde de fin'])
DF = DF.rename(columns={'GL_Debit':'Débit année à date','GL_Credit':'Crédit année à date'})
for i in range(len(DF)):
row = DF.iloc[i]
teste = row['month'][5:7]
if row['month'][5:7]=='04':
if row['GL'][0] in ['4', '5', '6', '7', '8', '9']:
DF.iloc[i]['Variation des périodes'] = row['Solde de fin']
else:
DF.iloc[i]['Variation des périodes'] = row['Variation des périodes']
我有這個錯誤: SettingWithCopyWarning: A value is trying to be set on a slice of a copy from a DataFrame DF.iloc[i]['Variation des périodes'] = row['Solde de fin']
和
DF.iloc[i]['Variation des périodes'] 沒有顯示行 ['Solde de fin']
我找到了一個解決方案:用 loc 替換 bloc 並且沒有警告並且值是上帝!
DF.loc[i, 'Variation des périodes'] =row['Solde de fin']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.