按两列计算值
Counting values by two columns
我有一个大日期文件,我正试图从中提取数据。我有两列 Start Time
& Date
我想做的是显示每个日期,然后是每个开始时间,然后是每个开始时间的计数。所以输出看起来像这样:
Date Start Time
30/12/2021 15:00 2
30/12/2021 16:00 6
30/12/2021 17:00 3
这是我试过的:
df = pd.read_excel(xls)
counter = df['Start Time'].value_counts()
date_counter = df['Date'].value_counts()
total = (df['Start Time']).groupby(df['Date']).sum()
pd.set_option("display.max_rows", None, "display.max_columns", None)
print(total)
input()
但是输出是这样的:
Date Start Time
30/12/2021 15:0016:0016:0017:0018:0018:00
非常感谢任何建议!
您只按 1 列分组。您需要对两列进行分组并使用 size()
获取计数
df.groupby(['Date', 'Start Time']).size()
您可以使用 2 个键值计数
counts = df[['Date','Start Time']].value_counts()
对于这个输入
Date Start Time
0 30/12/21 15:00
1 30/12/21 16:00
2 31/12/21 15:00
3 30/12/21 15:00
4 31/12/21 16:00
5 30/12/21 18:00
6 30/12/21 13:00
7 31/12/21 15:00
投掷
Date Start Time
31/12/21 15:00 2
30/12/21 15:00 2
31/12/21 16:00 1
30/12/21 18:00 1
16:00 1
13:00 1
我有一个大日期文件,我正试图从中提取数据。我有两列 Start Time
& Date
我想做的是显示每个日期,然后是每个开始时间,然后是每个开始时间的计数。所以输出看起来像这样:
Date Start Time
30/12/2021 15:00 2
30/12/2021 16:00 6
30/12/2021 17:00 3
这是我试过的:
df = pd.read_excel(xls)
counter = df['Start Time'].value_counts()
date_counter = df['Date'].value_counts()
total = (df['Start Time']).groupby(df['Date']).sum()
pd.set_option("display.max_rows", None, "display.max_columns", None)
print(total)
input()
但是输出是这样的:
Date Start Time
30/12/2021 15:0016:0016:0017:0018:0018:00
非常感谢任何建议!
您只按 1 列分组。您需要对两列进行分组并使用 size()
df.groupby(['Date', 'Start Time']).size()
您可以使用 2 个键值计数
counts = df[['Date','Start Time']].value_counts()
对于这个输入
Date Start Time
0 30/12/21 15:00
1 30/12/21 16:00
2 31/12/21 15:00
3 30/12/21 15:00
4 31/12/21 16:00
5 30/12/21 18:00
6 30/12/21 13:00
7 31/12/21 15:00
投掷
Date Start Time
31/12/21 15:00 2
30/12/21 15:00 2
31/12/21 16:00 1
30/12/21 18:00 1
16:00 1
13:00 1