删除一个dataframe里某列值为nan的所有行
时间: 2023-10-01 22:09:51 浏览: 165
可以使用 Pandas 的 dropna() 方法来删除包含 NaN 值的行。可以指定要删除的列,然后将参数 'subset' 设置为该列名。以下是一个示例代码:
```python
import pandas as pd
# 创建一个包含 NaN 值的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [2, 4, 6, 8, 10],
'C': [3, 6, None, 12, None]})
# 删除 C 列值为 NaN 的行
df = df.dropna(subset=['C'])
print(df)
```
输出:
```
A B C
0 1 2 3.0
1 2 4 6.0
3 4 8 12.0
```
在上面的示例中,我们删除了 C 列值为 NaN 的行,结果只保留了包含有效值的行。
相关问题
删除dataframe中某列值为nan的记录/行及索引
要删除DataFrame中某列值为NaN的记录/行及索引,可以使用dropna()函数。dropna()函数可以删除含有缺失值的行或列,并返回删除后的DataFrame。
假设DataFrame的名称为df,想要删除的列名为"column_name",可以按照以下步骤进行操作:
1. 使用df.dropna(subset=['column_name'], inplace=True)来删除含有NaN值的行。其中subset参数指定要检查的列名,inplace参数设置为True表示在原DataFrame上进行修改。
示例代码如下:
df.dropna(subset=['column_name'], inplace=True)
2. 如果想要重置索引,可以使用df.reset_index(drop=True)函数。该函数会删除原有的索引,并创建一个新的从0开始的索引。
示例代码如下:
df.reset_index(drop=True)
最终代码如下:
df.dropna(subset=['column_name'], inplace=True)
df.reset_index(drop=True)
通过以上操作,就可以删除DataFrame中某列值为NaN的记录/行及索引了。
python 取 dataframe 中某列不为 NaN 的行
可以使用pandas库中的dropna()函数来删除包含NaN值的行,也可以使用notnull()函数来获取某列不为NaN的行的布尔值,然后使用布尔值索引来获取对应的行。
以下是两种方法的示例代码:
方法一:使用dropna()函数删除包含NaN值的行
```python
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3, None], 'B': [4, None, 6, 7]})
# 使用dropna()函数删除包含NaN值的行
df = df.dropna(subset=['A'])
# 输出结果
print(df)
```
输出:
```
A B
0 1.0 4.0
1 2.0 NaN
2 3.0 6.0
```
方法二:使用notnull()函数获取某列不为NaN的行的布尔值
```python
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3, None], 'B': [4, None, 6, 7]})
# 使用notnull()函数获取某列不为NaN的行的布尔值
mask = df['A'].notnull()
# 使用布尔值索引获取对应的行
df = df[mask]
# 输出结果
print(df)
```
输出:
```
A B
0 1.0 4.0
1 2.0 NaN
2 3.0 6.0
```
阅读全文