pandas:将NaN替换为列中的最后一个非NaN值

时间:2017-03-31 00:23:13

标签: python excel pandas missing-data

我有一个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

1 个答案:

答案 0 :(得分:8)

您可以使用数据框上的fillna()方法执行此操作。 xargs告诉它填写最后一个有效值。

method='ffill'