Skip to main content
 首页 » 编程设计

python之如何使用 Pandas 在两个不同的单词之间进行填充

2025年05月04日20zhoujg

如果我有这样的数据框:

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

如何在单词之间进行填充,以便“Ascent”和“Descent”之间的 nan 值被“Above”填充,而“Descent”和“Ascent”之间的 nan 值被“Below”填充。这样我就得到了一个像这样的 Pandas 数据框:

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

请您参考如下方法:

我决定用 fillna 和 map 找点乐子:

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