SettingWithCopyWarning

一、链式索引修改值触发

import pandas as pd

score = pd.DataFrame(pd.read_excel(r'D:\Code\testData\t_pandas.xlsx'))

print(score)
score['语文'][0] = 9999
print(score)

在这里插入图片描述
解决方法:使用loc方法

import pandas as pd
import numpy as np

score = pd.DataFrame(pd.read_excel(r'D:\Code\testData\t_pandas.xlsx'))

print(score)
score.loc[0, '语文'] = 9999
print(score)

二、drop_duplicates方法生成DataFrame再修改值时触发(值会修改成功,但会触发此异常)

import pandas as pd
import numpy as np

score = pd.DataFrame(pd.read_excel(r'D:\Code\testData\t_pandas.xlsx'))
print(score)
score2 = score.drop_duplicates()
print(score2)
score2.loc[:, '语文'] = score2.loc[:, '语文'].astype(np.float32)
print(score2)

在这里插入图片描述
解决方法:在drop_duplicates后加上copy

import pandas as pd
import numpy as np

score = pd.DataFrame(pd.read_excel(r'D:\Code\testData\t_pandas.xlsx'))
print(score)
score2 = score.drop_duplicates().copy()
print(score2)
score2.loc[:, '语文'] = score2.loc[:, '语文'].astype(np.float32)
print(score2)

猜你喜欢

转载自blog.csdn.net/yeyu_xing/article/details/108240961