【发布时间】:2018-03-23 13:55:03
【问题描述】:
我有一个包含 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 的值)
Col1 Col2 Col3
0 hello 10 10
1 k 20 NaN
2 hello 30 30
3 we 40 NaN
4 r 50 NaN
如何更新 Col3 中的某些值而不影响其他值?
Col1 Col2 Col3
0 hello 10 10
1 k 20 2
2 hello 30 30
3 we 40 4
4 r 50 5
所以,简而言之:
拥有 my_values 我想将它们放在 Col3 中
【问题讨论】: