我有这样一个数据帧:
HNCO_iloc C_shift HNcoCA_iloc CA_shift i_FROM i_TO
0 25 180.40469 None None 36 None
0 70 179.52209 None None 46 None
0 137 178.47112 None None 49 None
0 157 178.35808 None None 36 None
0 204 177.14190 None None 32 None
0 221 176.99482 None None 26 None
0 261 176.12322 None None 16 None
0 269 176.08582 None None 36 None
0 270 176.09042 None None 36 None
0 313 175.27206 None None 24 None
0 322 175.18865 None None 31 None
0 332 174.78010 None None 43 None
0 342 174.34505 None None 45 None
0 352 173.76740 None None 1 None
0 358 173.46177 None None 3 None
0 363 172.97259 None None 3 None
我希望能够使用“I_FROM”中的值访问“CA_shift”列,并更新该单元格。因此,例如,如果我想将I_从等于3的行更改为3,我希望得到以下输出:
HNCO_iloc C_shift HNcoCA_iloc CA_shift i_FROM i_TO
0 25 180.40469 None None 36 None
0 70 179.52209 None None 46 None
0 137 178.47112 None None 49 None
0 157 178.35808 None None 36 None
0 204 177.14190 None None 32 None
0 221 176.99482 None None 26 None
0 261 176.12322 None None 16 None
0 269 176.08582 None None 36 None
0 270 176.09042 None None 36 None
0 313 175.27206 None None 24 None
0 322 175.18865 None None 31 None
0 332 174.78010 None None 43 None
0 342 174.34505 None None 45 None
0 352 173.76740 None None 1 None
0 358 173.46177 None test 3 None
0 363 172.97259 None test 3 None
现在我正在做:
connectivity_df.loc[connectivity_df['i_FROM' == 3], 'CA_shift'] = 'test'
但是我不断地得到KeyErrors
你可以用
np.where()
来解决这个问题。守则如下:第1种情况:一对一替换:
输出:
此操作以向量化的方式工作,就像
if
语句一样,如果行的值与example_value
匹配,它将更新为test
,否则它将返回CA_shift
的原始值第二种情况:多对一替换:
输出:
第三种情况:更换多对多:
输出:
相关问题 更多 >
编程相关推荐