让我们尝试转换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