【发布时间】:2022-02-04 21:53:12
【问题描述】:
首先,这听起来是一个非常愚蠢的问题,我认为答案应该很简单。
然而......我被这个问题困扰了好几个星期,但我仍然无法解决它。
我需要的是在组中使用fillna(method="ffill") 之类的东西。考虑下面的 DataFrame:
import pandas as pd
df = pd.read_csv("something.csv"
>>> df
group date price
0 1 2021-12-01 .15
1 1 2022-01-15 NaN
2 1 2021-02-03 .35
3 2 2021-12-01 NaN
4 2 2021-12-15 2.5
5 2 2022-02-03 NaN
6 3 2021-11-15 3.25
6 3 2021-12-03 NaN
6 3 2022-01-06 NaN
想要的输出是:
>>> df
group date price
0 1 2021-12-01 .15
1 1 2022-01-15 .15
2 1 2021-02-03 .35
3 2 2021-12-01 NaN
4 2 2021-12-15 2.5
5 2 2022-02-03 2.5
6 3 2021-11-15 3.25
6 3 2021-12-03 3.25
6 3 2022-01-06 3.25
到目前为止我所做的尝试:
df["price"] = df.groupby(["group", "date"])["price"].ffill()
df["price"] = df.groupby(["group", "date"])["price"].fillna(method="ffill")
df = df.groupby(["group", "date"]).fillna(method="ffill")
df["price"] = df.groupby(["group", "date"])["price"].apply(lambda x :x.ffill())
我找到了几个类似的答案,但没有一个给出预期的结果。
【问题讨论】:
标签: python python-3.x pandas dataframe pandas-groupby