python - Fillna 在除最后一行之外的所有行上
问题描述
假设我有一个这样的熊猫数据框:
df = pd.DataFrame({'A': [np.nan, 5, 2, np.nan, 3], 'B': [np.nan, 4, np.nan, 5, np.nan], 'C': [np.nan, 4, 3, 2, 1]})
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 NaN 3.0
3 NaN 5.0 2.0
4 3.0 NaN 1.0
我想在除最后一行之外的所有行上应用 fillna (填充)。这是预期的输出:
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0
以下代码不起作用:
df.drop(df.tail(1).index).fillna(method="ffill",inplace=True)
有任何想法吗?谢谢
解决方案
尝试使用,进行iloc
分配以获取最后一行之前的所有行并将其分配给 ffill :ffill
iloc
df
df.iloc[:-1] = df.iloc[:-1].ffill()
df
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0
推荐阅读
- node.js - 如何从 --capath 获取密钥和证书
- jenkins - 如何解决 Terraform 中的资源区域依赖问题
- python - 这是使代码与 Python3 一起工作的正确方法吗?
- swift - 如何根据一天中的时间自动滚动 UICollectionView 单元格
- javascript - 如何使用数组和函数计算 Javascript 中的平均值?
- powershell - Powershell:SendGrid - 使用特定结构发送给多个收件人
- ms-word - 根据受众类型以编程方式高效地更改 Word 文档的文本
- ios - 如何检测用户何时终止应用程序 - Swift
- python - pydrive 不接受来自我的 Google Cloud 帐户的 client_secret.json
- javascript - 使用 Hapi、axios 和 Cheerio 时 JSON 输出中的编码错误