Python无法更改数据帧值
我正在查询一个数据帧,如下所示:Python无法更改数据帧值,python,pandas,dataframe,data-analysis,Python,Pandas,Dataframe,Data Analysis,我正在查询一个数据帧,如下所示: >>> df A,B,C 1,1,200 1,1,433 1,1,67 1,1,23 1,2,330 1,2,356 1,2,56 1,3,30 如果我做part_df=df[df['A']==1&df['B']==2],我可以得到一个子数据帧,如下所示 >>> part_df A, B, C 1, 2, 330 1, 2, 3
>>> df
A,B,C
1,1,200
1,1,433
1,1,67
1,1,23
1,2,330
1,2,356
1,2,56
1,3,30
如果我做part_df=df[df['A']==1&df['B']==2],我可以得到一个子数据帧,如下所示
>>> part_df
A, B, C
1, 2, 330
1, 2, 356
1, 2, 56
现在我想对part_df做一些修改,比如:
part_df['C'] = 0
这些变化根本没有反映在原始df中。我猜是因为numpy的数组机制,每次都会产生一个新的数据帧副本。我想知道如何查询具有某些条件的数据帧,并按照我提供的示例对所选部分进行更改,并将值反映回原始数据帧 您应该这样做:
In [28]:
df.loc[(df['A'] == 1) & (df['B'] == 2),'C']=0
df
Out[28]:
A B C
0 1 1 200
1 1 1 433
2 1 1 67
3 1 1 23
4 1 2 0
5 1 2 0
6 1 2 0
7 1 3 30
[8 rows x 3 columns]
你应该使用
loc
并在末尾的方括号中选择感兴趣的“C”列你问我问题了吗,我的收件箱中弹出了一些东西,但这篇文章没有显示任何内容anymore@EdChum是的,我有一个问题,但后来设法解决了。所以我删除了这个问题。无论如何谢谢你!