请帮我写一段 将从df表中筛选出来的行中B列的值全设为5 的python代码
时间: 2023-05-31 09:07:59 浏览: 113
Python Pandas中根据列的值选取多行数据
好的,请问您使用的是 Python 2 还是 Python 3?
如果您使用的是 Python 3,可以使用以下代码实现您的需求:
```
import pandas as pd
df.loc[df['B'].notnull(), 'B'] = 5
```
其中,`df` 是您的数据框,`.loc` 表示根据条件选择数据,`['B'].notnull()` 表示选择 B 列不为空的数据,`'B'` 表示要操作的列名,`= 5` 表示将该列的值全部设为 5。
如果您使用的是 Python 2,可以使用以下代码:
```
import pandas as pd
df[df.B.notnull()] = df[df.B.notnull()].apply(lambda x: x.astype(object).replace(5, 'NaN'))
df[['B']] = df[['B']].fillna(value=5)
```
其中,`.apply()` 表示对符合条件的数据执行函数操作,`lambda x` 表示对每个符合条件的数据执行的函数,`astype(object).replace(5, 'NaN')` 表示将该列的所有值都转换为字符串类型,并将其中的 5 替换为字符串 'NaN',`[['B']]` 表示只操作 B 列,`.fillna(value=5)` 表示将空缺值填充为 5。
阅读全文