Pandas 数据框中每年的条目总数
Sum number of entries for each year in Pandas dataframe
我有一个来自国家飓风中心的数据集,它包含所有飓风的条目,每个飓风都有一个唯一的名称。每个飓风都有很多条目。我正在尝试收集每年的飓风次数。完整的数据集是:https://www.kaggle.com/noaa/hurricane-database
数据看起来像这样(缩写):
ID,Name,Date
AL011851,UNNAMED,18510625
AL011851,UNNAMED,18510625
AL011851,UNNAMED,18510625
AL021851,UNNAMED,18510705
AL031852,UNNAMED,18520710
AL041852,UNNAMED,18520816
AL041852,UNNAMED,18520810
我的代码是:
df = pd.read_csv("atlantic.csv")
#Convert date to pandas datetime
df["Date"] = pd.to_datetime(df["Date"].astype(str), format="%Y%m%d")
print(df.head(15))
df2 = pd.to_datetime(df["Date"]).dt.year.value_counts()
df2 只给我当年的条目总数。我需要唯一 ID 的总数,而不是全部条目。我对如何实现这一点感到困惑。
为了获得每年 ID 的唯一计数,请使用此
df2 = df.set_index("Date").resample('Y').nunique()['ID']
或
df2 = df.groupby(df.Date.dt.year).nunique()['ID']
我有一个来自国家飓风中心的数据集,它包含所有飓风的条目,每个飓风都有一个唯一的名称。每个飓风都有很多条目。我正在尝试收集每年的飓风次数。完整的数据集是:https://www.kaggle.com/noaa/hurricane-database
数据看起来像这样(缩写):
ID,Name,Date
AL011851,UNNAMED,18510625
AL011851,UNNAMED,18510625
AL011851,UNNAMED,18510625
AL021851,UNNAMED,18510705
AL031852,UNNAMED,18520710
AL041852,UNNAMED,18520816
AL041852,UNNAMED,18520810
我的代码是:
df = pd.read_csv("atlantic.csv")
#Convert date to pandas datetime
df["Date"] = pd.to_datetime(df["Date"].astype(str), format="%Y%m%d")
print(df.head(15))
df2 = pd.to_datetime(df["Date"]).dt.year.value_counts()
df2 只给我当年的条目总数。我需要唯一 ID 的总数,而不是全部条目。我对如何实现这一点感到困惑。
为了获得每年 ID 的唯一计数,请使用此
df2 = df.set_index("Date").resample('Y').nunique()['ID']
或
df2 = df.groupby(df.Date.dt.year).nunique()['ID']