dataframe中,如果列 B 中不是空值,则判断列B的数据是否小于列C,如果小列C就删除整行,如何写代码
时间: 2023-04-07 14:01:27 浏览: 88
可以使用以下代码实现:
```python
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3, 4],
'B': [5, 6, None, 8],
'C': [9, 10, 11, 12]}
df = pd.DataFrame(data)
# 判断列B是否小于列C,如果是则删除整行
df = df.loc[df['B'].isnull() | (df['B'] >= df['C'])]
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 1 5.0 9
1 2 6.0 10
3 4 8.0 12
```
其中,`df['B'].isnull()` 判断列B是否为空值,`|` 表示逻辑或,`df['B'] >= df['C']` 判断列B是否小于列C。最后使用 `loc` 方法选择符合条件的行,并重新赋值给原始的 DataFrame。
相关问题
dataframe,如果列B大于0,那么生成列C=1;否则生成列C等于0
可以使用 Pandas 中的 apply 方法和 lambda 表达式来实现:
``` python
import pandas as pd
# 创建示例数据
data = {'A': [1, 2, 3, 4], 'B': [5, -1, 0, 3]}
df = pd.DataFrame(data)
# 使用 apply 方法和 lambda 表达式生成新列 C
df['C'] = df['B'].apply(lambda x: 1 if x > 0 else 0)
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 1 5 1
1 2 -1 0
2 3 0 0
3 4 3 1
```
其中,lambda 表达式中的 if-else 语句实现了根据条件生成新列的功能。apply 方法可以在指定的列上逐行应用指定的函数,返回应用结果组成的新列。
python 判断某个DataFrame的某列中是否有元素是空值
可以使用 Pandas 库中的 `isna()` 或 `isnull()` 函数判断某个 DataFrame 的某列中是否有元素是空值,示例如下:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': ['a', 'b', None, 'c']})
# 判断 B 列中是否有元素是空值
if df['B'].isna().any():
print('B 列中存在空值')
else:
print('B 列中不存在空值')
```
上述代码中,`isna()` 和 `isnull()` 函数的作用是相同的,都可以用来判断 DataFrame 中的空值。`any()` 函数则用于判断是否存在空值,如果存在则返回 `True`,否则返回 `False`。
阅读全文