基于DF中不同字符串列的更改停止正向填充

2024-05-14 18:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,所以请放松

我有一个如下所示的数据帧。我想在shares_owned列中向前填充NaN,但当df['ticker']中的字符串更改时停止。并且只有当另一个号码出现在你再次拥有的股份中时才开始

^{tb1}$

例如,输出表如下所示:

^{tb2}$

到目前为止,我一直试图使用.fillna(method='ffill'),但没有任何效果


Tags: 数据字符串dfnanmethod号码tickershares
1条回答
网友
1楼 · 发布于 2024-05-14 18:28:54
  • 您注意到组,因此groupby()进行分组
  • 在组内fillna(method="fill")transform()
df = pd.read_csv(io.StringIO("""date    ticker  shares_owned    price
01/01/2020  EZY NaN £2
02/01/2020  EZY 10  £2.1
03/01/2020  EZY NaN £2.12
04/01/2020  EZY NaN £12.5
01/01/2020  FTSE    NaN £11
02/01/2020  FTSE    NaN £12
03/01/2020  FTSE    2   £12.5
04/01/2020  FTSE    NaN £12.5"""), sep="\t")

df["shares_owned"] = df.groupby("ticker")["shares_owned"].transform(lambda s: s.fillna(method="ffill"))

输出

^{tb1}$

相关问题 更多 >

    热门问题