dataframe中,在列 B 不为空、并且列 B 大于等于列 C取值时,删除整行
时间: 2023-04-07 22:01:28 浏览: 85
可以使用以下代码实现:
```python
df = df.drop(df[(df['B'].notnull()) & (df['B'] >= df['C'])].index)
```
这行代码会删除所有满足条件的行,即列 B 不为空、并且列 B 大于等于列 C取值的行。
相关问题
dataframe,如果列A大于列A取值的中位数、并且列B等于2,那么将列C取值变为1,否则变为0
这个问题是关于数据处理的问题,我可以回答。您可以使用 pandas 库中的 DataFrame 对象,通过一系列操作实现该需求。具体步骤可以是:首先计算列A的中位数,然后将该 DataFrame 按照该中位数将列A分为大于和小于中位数的两部分;接着将该 DataFrame 中列B等于2的部分选出来,并将它们的列C的值设为1,其余部分的列C的值设为0。
如何用代码实现:dataframe,如果列A大于列A取值的中位数、并且列B等于2,那么将列C取值变为1,否则变为0
可以使用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中指定行列的函数,第一个参数表示行筛选条件,第二个参数表示列筛选条件,第三个参数表示要赋的值。
阅读全文