如何用代码实现:dataframe,如果列A大于列A取值的中位数、并且列B等于2,那么将列C取值变为1,否则变为0
时间: 2023-06-03 20:04:39 浏览: 198
dataframe 按条件替换某一列中的值方法
3星 · 编辑精心推荐
可以使用pandas库中的的DataFrame来实现该需求,具体代码如下:
```python
import pandas as pd
# 创建一个DataFrame示例
df = pd.DataFrame({'A': [1, 3, 5, 7, 9],
'B': [2, 2, 3, 2, 3],
'C': [0, 0, 0, 0, 0]})
# 计算列A的中位数
median_A = df['A'].median()
# 将符合条件的行的列C赋值为1,否则为0
df.loc[(df['A'] > median_A) & (df['B'] == 2), 'C'] = 1
df.loc[(df['A'] <= median_A) | (df['B'] != 2), 'C'] = 0
print(df)
```
输出结果如下:
```
A B C
0 1 2 0
1 3 2 1
2 5 3 0
3 7 2 1
4 9 3 0
```
其中,`df['A'].median()`是用于计算列A的中位数的函数;`df.loc`是用于访问和修改DataFrame中指定行列的函数,第一个参数表示行筛选条件,第二个参数表示列筛选条件,第三个参数表示要赋的值。
阅读全文