【问题标题】:Count certain values in a Column by filtering another Column "Date"通过过滤另一列“日期”来计算列中的某些值
【发布时间】:2021-09-28 00:59:43
【问题描述】:

我有

Process Assists Date
23d34 0,0 13.10.2020
23d4t 1 14.10.2020
56z45 3 13.10.2020
2387e 0,0 17.10.2020
56z45 0,0,0 14.10.2020
3249u 0,0 15.10.2020
3209r 0,0 27.10.2020
n98b3 1,4 14.10.2020

我想计算从 2020 年 10 月 13 日到 2020 年 10 月 20 日期间“助攻”行中“0,0”的数量。 我怎么做? 使用

count = df.assisted_count[df.assisted_count.apply(lambda x : str(x).strip() == "0,0")].size

给我 0,0 的总数,但我在某些时间段内需要它。 希望有人能帮助我吗?

非常感谢 =)

【问题讨论】:

    标签: python pandas dataframe jupyter-notebook data-science


    【解决方案1】:

    让我们尝试转换to_datetime 以使按日期过滤更容易。然后创建一个布尔系列匹配日期 between 开始和结束范围,也匹配目标字符串 '0,0' 。如果只需要匹配计数,可以使用sum 而不是过滤DataFrame:

    # Make Date column datetime
    df['Date'] = pd.to_datetime(df['Date'], format='%d.%m.%Y')
    # Filter Date between Start and End
    date_m = df['Date'].between('2020-10-13', '2020-10-20')
    # Check Where 'Assists' is '0,0'
    zz_m = df['Assists'].str.strip().eq('0,0')
    # Add up all the places where both conditions are true
    count = (date_m & zz_m).sum()
    

    计数 = 3。

    df:

      Process Assists       Date
    0   23d34     0,0 2020-10-13  # Date column is now datetime
    1   23d4t       1 2020-10-14
    2   56z45       3 2020-10-13
    3   2387e     0,0 2020-10-17
    4   56z45   0,0,0 2020-10-14
    5   3249u     0,0 2020-10-15
    6   3209r     0,0 2020-10-27
    7   n98b3     1,4 2020-10-14
    

    也可以使用单独的Series,而不是将日期列更新为日期时间:

    # Make separate series from Date column
    s = pd.to_datetime(df['Date'], format='%d.%m.%Y')
    date_m = s.between('2020-10-13', '2020-10-20')
    zz_m = df['Assists'].str.strip().eq('0,0')
    count = (date_m & zz_m).sum()
    

    计数 = 3。

    df:

      Process Assists        Date
    0   23d34     0,0  13.10.2020  # Date col has not been modified
    1   23d4t       1  14.10.2020
    2   56z45       3  13.10.2020
    3   2387e     0,0  17.10.2020
    4   56z45   0,0,0  14.10.2020
    5   3249u     0,0  15.10.2020
    6   3209r     0,0  27.10.2020
    7   n98b3     1,4  14.10.2020
    

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 1970-01-01
      • 2021-06-16
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多