python - 如何从 Dataframe 中检索具有最近日期的数据?

标签 python pandas dataframe

我有一个数据框如下:

date        weight
10/30/2018  
05/25/2018  80
09/05/2018  74.6
09/05/2018  74.8
07/08/2018  25

如何检索最近日期的体重?

场景如下:

  1. 如果最近日期没有权重,则应考虑下一个最近日期的权重。
  2. 如果最近的日期在数据框中多次出现,则应考虑最大权重。

(或相对于日期第一次出现的权重是可以的......即,得到 74.674.8 也可以。)

最佳答案

将值转换为日期时间,按日期Series.sort_values 排序,前向填充可能的缺失值并最后得到weight的乳值:

df['date'] = pd.to_datetime(df['date'])
df = df.sort_values('date')
df['weight'] = df['weight'].ffill()
print (df)
        date  weight
1 2018-05-25    80.0
4 2018-07-08    25.0
2 2018-09-05    74.6
3 2018-09-05    74.8
0 2018-10-30    74.8

a = df.iloc[-1, df.columns.get_loc('weight')]
#alternative
#a = df['weight'].values[-1]
print (a)
74.8

关于python - 如何从 Dataframe 中检索具有最近日期的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58763613/

相关文章:

python - 如何使用按钮将sqlite Flask后端的数据显示到前端?

python - 从python中的sklearn线性回归获取置信区间

python - 从列表中存在的数据帧列中的字符串中提取前缀

python - 在 Python pandas DataFrame 中交换值以清理数据的最佳方法是什么

python - 当 Python 套接字连接失败时正确设置超时

python - 为什么 python 在 numpy.core.ma 上窒息?

python - Pandas Python 条件

Python:这是在 Pandas 数据框中查找索引的快速方法?

python - 将数据框转换为二维数组

python - 如何在 Python pandas 中使用 pd.melt