在 pandas 的 groupby 中添加默认值
Add default value while groupby in pandas
我正在使用 Pandas 数据框,我的数据包含日期、事件和计数列。
Date Events Count
1/1/2021 Event1 2
1/1/2021 Event2 1
2/1/2021 Event1 2
1/2/2021 Event1 1
2/1/2021 Event2 1
3/2/2021 Event3 2
3/2/2021 Event3 2
如果事件在同一个月重复发生,我想对其进行分组,并在计数列中将默认值设为 1。
Date Events Count
1/1/2021 Event1 1
1/1/2021 Event2 1
1/2/2021 Event1 1
3/2/2021 Event3 1
使用 DataFrame.drop_duplicates
并将 1
设置为 Count
列:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df['months'] = df['Date'].dt.to_period('m')
df1 = df.drop_duplicates(['months','Events']).assign(Count=1)
print (df1)
Date Events Count months
0 2021-01-01 Event1 1 2021-01
1 2021-01-01 Event2 1 2021-01
3 2021-02-01 Event1 1 2021-02
5 2021-02-03 Event3 1 2021-02
df1 = df1.drop('months', axis=1)
print (df1)
Date Events Count
0 2021-01-01 Event1 1
1 2021-01-01 Event2 1
3 2021-02-01 Event1 1
5 2021-02-03 Event3 1
我正在使用 Pandas 数据框,我的数据包含日期、事件和计数列。
Date Events Count
1/1/2021 Event1 2
1/1/2021 Event2 1
2/1/2021 Event1 2
1/2/2021 Event1 1
2/1/2021 Event2 1
3/2/2021 Event3 2
3/2/2021 Event3 2
如果事件在同一个月重复发生,我想对其进行分组,并在计数列中将默认值设为 1。
Date Events Count
1/1/2021 Event1 1
1/1/2021 Event2 1
1/2/2021 Event1 1
3/2/2021 Event3 1
使用 DataFrame.drop_duplicates
并将 1
设置为 Count
列:
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df['months'] = df['Date'].dt.to_period('m')
df1 = df.drop_duplicates(['months','Events']).assign(Count=1)
print (df1)
Date Events Count months
0 2021-01-01 Event1 1 2021-01
1 2021-01-01 Event2 1 2021-01
3 2021-02-01 Event1 1 2021-02
5 2021-02-03 Event3 1 2021-02
df1 = df1.drop('months', axis=1)
print (df1)
Date Events Count
0 2021-01-01 Event1 1
1 2021-01-01 Event2 1
3 2021-02-01 Event1 1
5 2021-02-03 Event3 1