我有一个看起来像这样的数据框:

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/

10-09 20:19