如果我有这样的数据框:

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


如何填充单词之间的距离,以使“上升”和“下降”之间的nan值填充为“之上”,而使“下降”和“上升”之间的nan值填充为“下面”。这样我就得到了一个熊猫数据框,如下所示:

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

最佳答案

我决定对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

关于python - 如何使用 Pandas 在两个不同的单词之间填充?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55447061/

10-12 17:03