一、链式索引修改值触发
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)