删除dataframe中某列值为nan的记录/行及索引
时间: 2023-09-06 18:05:57 浏览: 163
要删除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
```
根据数组创建dataframe行索引为one two,列索引为col1
可以使用 pandas.DataFrame 函数来创建一个空的 DataFrame,然后使用 reindex 函数来设置行索引和列索引:
```python
import pandas as pd
# 创建一个空的 DataFrame
df = pd.DataFrame()
# 设置行索引为 "one" 和 "two"
df = df.reindex(["one", "two"])
# 设置列索引为 "col1"
df["col1"] = None
# 输出结果
print(df)
```
输出结果:
```
col1
one None
two None
```
注意,这里我们首先创建了一个空的 DataFrame,然后使用 reindex 函数来设置行索引,最后再添加一个列索引。如果直接在 DataFrame 函数中指定行索引和列索引,也可以达到同样的效果:
```python
import pandas as pd
# 直接指定行索引和列索引
df = pd.DataFrame(index=["one", "two"], columns=["col1"])
# 输出结果
print(df)
```
输出结果:
```
col1
one NaN
two NaN
```
阅读全文