簡體   English   中英

計算熊貓數據框中的唯一日期

[英]Count unique dates in pandas dataframe

我有一個按台站標識符代碼和日期組織的地面天氣觀測( fzraHrObs )數據fzraHrObs fzraHrObs具有幾列天氣數據。 站點代碼和日期(datetime對象)如下所示:

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

我想獲得每個站點每年唯一日期(天)的數量的計數,即每個站點每年obs的天數。 在上面的示例中,這將給我:

    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])grouped = fzraHrObs['dat'].groupby(fzraHrObs['usaf'], fzraHrObs.dat.dt.year, fzraHrObs.dat.dt.date])

計數,大小,唯一性等等都給了我每個日期的obs數,而不是每年的日期數。 在這里得到我想要的任何建議嗎?

可能是這樣,將日期按usafyear usaf ,然后計算唯一值的數量:

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

以下應該工作:

df.groupby(['usaf', df.dat.dt.year])['dat'].apply(lambda s: s.dt.date.nunique())

我做的不同的是僅按兩個級別進行分組,然后使用pandas系列的nunique方法計算每個組中唯一日期的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM