如何使用熊猫在两个不同的单词之间填充?

时间:2019-04-01 01:32:27

标签: python pandas python-2.7

如果我有一个这样的数据框:

        A
 0  Ascent
 1   NaN
 2   NaN
 3  Descent
 4   NaN
 5  Ascent

我该如何在单词之间填充,以使“上升”和“下降”之间的nan值填充为“之上”,而使“下降”和“上升”之间的nan值填充为“下面”。这样我就得到了这样的Pandas数据框:

        A
 0  'Ascent'
 1   'Above'
 2   'Above'
 3  'Descent'
 4   'Below'
 5  'Ascent'

1 个答案:

答案 0 :(得分:5)

我决定对fillnamap有点乐趣:

df

         A
0   Ascent
1      NaN
2      NaN
3  Descent
4      NaN
5   Ascent

df['A'].fillna(df['A'].ffill().map({'Ascent':'Above', 'Descent': 'Below'}))
# Identical solution, different order of method calls,
# df['A'].fillna(df['A'].map({'Ascent':'Above', 'Descent': 'Below'}).ffill())

0     Ascent
1      Above
2      Above
3    Descent
4      Below
5     Ascent
Name: A, dtype: object