Pandas 更新数据帧值指定Nan

Pandas 更新数据帧值指定Nan,pandas,dataframe,Pandas,Dataframe,我有一个包含3列的数据框架:Col1、Col2和Col3 玩具示例 d = {'Col1':['hello','k','hello','we','r'], 'Col2':[10,20,30,40,50], 'Col3':[1,2,3,4,5]} df = pd.DataFrame(d) 其中包括: Col1 Col2 Col3 0 hello 10 1 1 k 20 2 2 hello 30 3 3

我有一个包含3列的数据框架:Col1、Col2和Col3

玩具示例

d = {'Col1':['hello','k','hello','we','r'],
     'Col2':[10,20,30,40,50],
     'Col3':[1,2,3,4,5]}
df = pd.DataFrame(d)
其中包括:

    Col1  Col2  Col3
0  hello    10     1
1      k    20     2
2  hello    30     3
3     we    40     4
4      r    50     5
我正在选择
Col2
的值,以便
Col1
中的值为“hello”

my_values = df.loc[df['Col1']=='hello']['Col2']
这将返回一个序列,其中可以看到
Col2
的值以及索引

0    10
2    30
Name: Col2, dtype: int64
现在假设我想把这个值赋给Col3

我只想替换那些值(索引0和2),保持Col3中的其他值不变

我试过:

df['Col3'] = my_values
但这会将
Nan
分配给其他值(Col1不是hello的值)

如何更新Col3中的某些值,而保持其他值不变

    Col1  Col2  Col3
0  hello    10    10
1      k    20   2
2  hello    30    30
3     we    40   4
4      r    50   5
因此,简言之:


有了我的_值,我想把它们放在Col3中,或者仅仅基于
np.where

df['Col3']=np.where(df['Col1'] == 'hello',df.Col2,df.Col3)
如果基于您的myvalue

df.loc[my_values.index,'col3']=my_values
或者你可以只做
update

df['Col3'].update(my_values)

好,对。更新正是我要找的!它需要一个系列,并且只使用它的值更新列。@SembeiNorimaki hah,很高兴我能帮上忙
df['Col3'].update(my_values)