gpt4 book ai didi

python - Pandas 用另一列的日期时间填充,但进行了修改

转载 作者:行者123 更新时间:2023-12-01 01:10:37 34 4
gpt4 key购买 nike

我有一个数据框:

pd.DataFrame({"date": ["2018-12-21", "2018-12-22", "2018-05-04"], "price":[100,np.nan, 105]})

输出:

date       price
2018-12-21 100.0
2018-12-22 NaN
2018-05-04 105.0

我正在尝试通过获取前一天的 Price 值来.fillna()。因此,在本例中,NaN 值将填充 100,因为我们将 NaN 值的日期减去一天。

最佳答案

用途:

df = pd.DataFrame({"date": ["2018-12-21", "2018-12-22", 
"2018-05-04","2018-05-05",
"2018-05-06","2018-05-09"],
"price":[100,np.nan, 105, np.nan, 108, np.nan]})

print (df)

date price
0 2018-12-21 100.0
1 2018-12-22 NaN
2 2018-05-04 105.0
3 2018-05-05 NaN
4 2018-05-06 108.0
5 2018-05-09 NaN
<小时/>
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')

df['price'] = df['price'].combine_first(df['price'].shift(1, freq='d'))
#alternative
#df['price'] = df['price'].combine_first(df['price'].shift(1, freq='d'))
print (df)
price
date
2018-12-21 100.0
2018-12-22 100.0
2018-05-04 105.0
2018-05-05 105.0
2018-05-06 108.0
2018-05-09 NaN

如果需要替换最后一个非缺失值(不是前一天):

df['price'] = df['price'].ffill()
print (df)
date price
0 2018-12-21 100.0
1 2018-12-22 100.0
2 2018-05-04 105.0
3 2018-05-05 105.0
4 2018-05-06 108.0
5 2018-05-09 108.0

关于python - Pandas 用另一列的日期时间填充,但进行了修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54901950/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com