pandas:用列中的最后一个非 NaN 值替换 NaN [重复]
Posted
技术标签:
【中文标题】pandas:用列中的最后一个非 NaN 值替换 NaN [重复]【英文标题】:pandas: replace NaN with the last non-NaN value in column [duplicate] 【发布时间】:2017-08-25 02:54:07 【问题描述】:我有一个 Excel 文件,其中列出了篮球队和每支球队的球员。新团队的第一行在第 0 列中说明了团队名称,在第 1 列中说明了该团队的一名球员。下一行在第 1 列中仅包含该球队的一名球员(第 0 列中没有任何内容,因为该球队从最后一列中暗示)指定团队)。每个团队都重复此操作。
Warriors Stephen Curry
- Klay Thompson
- Kevin Durant
Clippers Chris Paul
- Blake Griffen
- JJ Redick
Raptors Kyle Lowry
- Demar Derozan
我正在将数据导入 pandas 数据框并计算每支球队的球员人数。
import pandas as pd
df = read_excel('data.xlsx')
print(df)
Team Player
0 Warriors Stephen Curry
1 NaN Klay Thompson
2 NaN Kevin Durant
3 Clippers Chris Paul
4 NaN Blake Griffen
5 NaN JJ Redick
6 Raptors Kyle Lowry
7 NaN Demar Derozan
无论如何我可以用适当的团队名称替换NaN
(我知道我只需要填写 excel 文件中的空白点,但如果我在导入或通过 pandas 处理它看起来更干净)。我想我需要遍历数据框,如果不是NaN
,则存储团队名称,并用当前存储的团队名称替换NaN
,直到新团队出现。
如果你不懂篮球,我的数据框应该是这样的:
Team Player
0 Warriors Stephen Curry
1 Warriors Klay Thompson
2 Warriors Kevin Durant
3 Clippers Chris Paul
4 Clippers Blake Griffen
5 Clippers JJ Redick
6 Raptors Kyle Lowry
7 Raptors Demar Derozan
【问题讨论】:
请注意——正如链接的 dup 中提到的一些答案——这些天你可以直接使用.ffill()
。
【参考方案1】:
您可以在数据帧上使用fillna()
方法来执行此操作。 method='ffill'
告诉它用最后一个有效值填充。
df.fillna(method='ffill')
【讨论】:
以上是关于pandas:用列中的最后一个非 NaN 值替换 NaN [重复]的主要内容,如果未能解决你的问题,请参考以下文章