python - 计算 pandas 数据框中的唯一日期

标签 python pandas

我有一个由气象站标识符代码和日期组织的地面天气观测数据框 (fzraHrObs)。 fzraHrObs 有几列天气数据。车站代码和日期(日期时间对象)如下所示:

usaf      dat
716270    2014-11-23 12:00:00
          2015-12-20 08:00:00
          2015-12-20 09:00:00
          2015-12-21 04:00:00
          2015-12-28 03:00:00
716280    2015-12-19 08:00:00
          2015-12-19 08:00:00

我想获得每个站每年唯一日期(天)的数量 - 即每个站每年观测的天数。在上面的例子中,这会给我:

    usaf      Year     Count
    716270    2014     1
              2015     3
    716280    2014     0
              2015     1

我尝试使用 groupby 并按电台、年份和日期进行分组: grouped = fzraHrObs['dat'].groupby(fzraHrObs['usaf'], fzraHrObs.dat.dt.year, fzraHrObs.dat.dt.date])

计数、大小、nunique 等仅给出每个日期的 obs 数量,而不是每年的日期本身数量。关于在这里获得我想要的东西有什么建议吗?

最佳答案

可能是这样的,按 usafyear 对日期进行分组,然后计算唯一值的数量:

import pandas as pd
df.dat.apply(lambda dt: dt.date()).groupby([df.usaf, df.dat.apply(lambda dt: dt.year)]).nunique()

#   usaf   dat 
# 716270  2014    1
#         2015    3
# 716280  2015    1
# Name: dat, dtype: int64

关于python - 计算 pandas 数据框中的唯一日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875752/

相关文章:

python - 根据多列和一列的总和重新排序 pandas 数据框

python - 如何使用 inverse_transform 将 Scikit-Learn PowerTransformer() 设置为 GridSearchCV 管道中 TransformedTargetRegressor 中的变压器参数

python - 我已经安装了 pandas 但无法在 VScode 中导入

python - Sqlalchemy - 使用过滤器更新行会产生列表索引错误

python - 如何显示Series中某个索引的所有值?

python - 从自定义文本字段中提取年份和月份

python - 如何聚合 DataFrame 的值(并快速输出 numpy 数组)?

python - 有没有办法确认 numpy 中的所有输入数组维度?

Python cvxopt glpk ilp 返回第一个可行解

python - django.db.utils.InterfaceError : (0, '' )