【问题标题】:Counting values by two columns按两列计算值
【发布时间】:2021-12-09 06:10:40
【问题描述】:

我有一个大的日期文件,我正试图从中提取数据。我有两列Start TimeDate 我想做的是显示每个日期,然后是每个开始时间,然后是每个开始时间的计数。所以输出看起来像这样:

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        

非常感谢任何建议!

【问题讨论】:

    标签: python pandas dataframe counter


    【解决方案1】:

    您仅按 1 列分组。您需要按两列分组并使用 size() 获取计数

    df.groupby(['Date', 'Start Time']).size()
    

    【讨论】:

      【解决方案2】:

      您可以使用 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
      

      【讨论】:

        猜你喜欢
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        • 2021-01-14
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-04
        相关资源
        最近更新 更多