df1=pd.DataFrame({'a':[1,2,3],'b':[2,3,4]})
dfdata=df1[['a']]
dfdata['a']=0
print(dfdata)

报错:

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

有三种解决方法:

1,新建一个dataframe进行操作。

2,在复制dataframe的时候使用copy()方法。

df1=pd.DataFrame({'a':[1,2,3],'b':[2,3,4]})
dfdata=df1[['a']].copy()
dfdata['a']=0
print(dfdata)

3,使用.loc[]来赋值。

df1=pd.DataFrame({'a':[1,2,3],'b':[2,3,4]})
dfdata=df1[['a']]
dfdata.loc[:,'a']=0
print(dfdata)

 

 posted on 2024-02-01 22:06  会飞的金鱼  阅读(938)  评论(0)    收藏  举报