原始 DataFrame: A B 0 1.0 NaN 1 2.0 6.0 2 NaN 7.0 3 4.0 NaN 4 NaN 9.0 修改后 DataFrame A B 0 1.0 1.0 1 2.0 6.0 2 NaN 7.0 3 4.0 4.0 4 NaN 9.0
时间: 2024-01-11 16:06:11 浏览: 140
根据你给出的示例数据,你的要求是将 DataFrame 中的空值填充为该行的前一个非空值。但是在你给出的“修改后 DataFrame”中,第 1 行的空值被填充为了该列的第一个非空值,而不是该行的前一个非空值,这有些奇怪。如果你的要求确实是将空值填充为该列的第一个非空值,可以使用 Pandas 中的 `fillna()` 方法,指定 `method` 参数为 `bfill`(backward fill)即可实现。以下是示例代码:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4, None], 'B': [None, 6, 7, None, 9]})
print("原始 DataFrame:")
print(df)
# 使用 backward fill 填充空值
df.fillna(method='bfill', inplace=True)
print("修改后的 DataFrame:")
print(df)
```
输出:
```
原始 DataFrame:
A B
0 1.0 NaN
1 2.0 6.0
2 NaN 7.0
3 4.0 NaN
4 NaN 9.0
修改后的 DataFrame:
A B
0 1.0 6.0
1 2.0 6.0
2 4.0 7.0
3 4.0 9.0
4 NaN 9.0
```
如果你的要求是将空值填充为该行的前一个非空值,可以使用 Pandas 中的 `fillna()` 方法,指定 `method` 参数为 `ffill`(forward fill)即可实现。以下是示例代码:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4, None], 'B': [None, 6, 7, None, 9]})
print("原始 DataFrame:")
print(df)
# 使用 forward fill 填充空值
df.fillna(method='ffill', inplace=True)
print("修改后的 DataFrame:")
print(df)
```
输出:
```
原始 DataFrame:
A B
0 1.0 NaN
1 2.0 6.0
2 NaN 7.0
3 4.0 NaN
4 NaN 9.0
修改后的 DataFrame:
A B
0 1.0 NaN
1 2.0 6.0
2 2.0 7.0
3 4.0 7.0
4 4.0 9.0
```
阅读全文