pandas.DataFrame对根据某些列对某些列进行修改

df.loc[((df.money< 95) | (df.money> 110)) & (df.type== '2'), 'total'] = 1


- 判断条件无论大小一定要用括号括起来,不然会报错

- 这样的方式是不正确的,只可以如上所示

df.loc[((df.money< 95) | (df.money> 110)) & (df.type== '2')]['total'] = 1

示例

In [123]: df
Out[123]:
   max_speed  shield   age
0          1     1.0   NaN
1          2     2.0  34.0
2          2     2.0  34.0

我们希望修改shield为1,age为NaN的值进行填充空值

我们可能会写成以下两种方式

df.loc[(df['shield']==1)&(df['age'].isnan)] = 12

或者

df.loc[(df['shield']==1)&(df['age'] == np.nan)] = 12

会发现无法进行修改

解决方式:是先将其填充为一个不可能出现的值,例如为-1,然后再修改

df['age'] = df['age'].fillna(-1)
df.loc[(df['shield'] == 1)&(df['age']==-1)] = 12

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值