【发布时间】:2021-11-14 19:45:11
【问题描述】:
我尝试根据日期合并两个 Pandas 数据框,然后填充 NaN 值直到特定日期。我有以下数据示例:
df_1:
| date | value1 |
|---|---|
| 01/12 | 10 |
| 02/12 | 20 |
| 03/12 | 30 |
| 04/12 | 40 |
| 05/12 | 60 |
| 06/12 | 70 |
| 07/12 | 80 |
df_2:
| date | value2 |
|---|---|
| 01/12 | 100 |
| 03/12 | 300 |
| 05/12 | 500 |
我使用以下行:
df = pd.merge((df_1,df_2, how='left', on=['date']
我明白了:
| date | value1 | value2 |
|---|---|---|
| 01/12 | 10 | 100 |
| 02/12 | 20 | NaN |
| 03/12 | 30 | 300 |
| 04/12 | 40 | Nan |
| 05/12 | 50 | 500 |
| 06/12 | 60 | NaN |
| 07/12 | 70 | NaN |
然后我想要实现的是将df['value2'] 中的NaN 值转发到05/12,而不是直到07/12。
【问题讨论】:
-
你所说的'forwardfill'是什么意思?数据框需要每个行列组合的条目,如果没有值,我认为您会遇到 NaN。如果您想为 6/12 之后的日期将特定值设置为 value2,您可以这样做,但如果您对 NaN 不满意,则必须选择这些值。
-
对于“value2”,它应该如下所示:100,100,300,300,500,500,NaN,NaN。基本上使用 fillna(method='ffill') 但直到 05/12。但是使用 fillna() 它将填充 NaN 值直到数据帧结束(07/12)
-
@kobo 如果对您有帮助,请批准该解决方案:D
标签: python pandas dataframe nan ffill