我有一个看起来像这样的数据框:
df = pd.DataFrame({'Planets': ['Mars','Mars','Mars', 'Jupyter', 'Venus', 'Venus', 'Mercury'], 'Rank': [1,np.nan, np.nan, 2, 3, np.nan, 4]})
我想根据Planet条目的并发性更新Rank列(其中为空)。例如,在“等级”列中条目“ 1”之后有空值时,我们将在后面的两个空行中填充1。
最佳答案
您可以使用ffill(向前填充):
In [11]: df
Out[11]:
Planets Rank
0 Mars 1
1 Mars NaN
2 Mars NaN
3 Jupyter 2
4 Venus 3
5 Venus NaN
6 Mercury 4
In [12]: df["Rank"].ffill()
Out[12]:
0 1
1 1
2 1
3 2
4 3
5 3
6 4
Name: Rank, dtype: float64
In [13]: df["Rank"] = df["Rank"].ffill()
In [14]: df
Out[14]:
Planets Rank
0 Mars 1
1 Mars 1
2 Mars 1
3 Jupyter 2
4 Venus 3
5 Venus 3
6 Mercury 4
关于python - 如何根据另一列的字符串值更新一列? python Pandas ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33281093/