我刚刚学习了如何按日期对带有日期时间索引的Pandas DataFrame进行分组。如何计算groupby每天返回的特定值(“通过”或“失败”)的数量?
我的目标是计算每日收益:收益=合格计数/(合格计数+失败计数)。
import pandas as pd
import random
data = [random.choice(['Passed','Failed']) for i in range(100)]
times = pd.date_range('20180101',freq='3H',periods=100)
df = pd.DataFrame({'A':data},index=times)
group = df.groupby(pd.Grouper(freq='1D'))
答案 0 :(得分:1)
我认为您需要GroupBy.size
或SeriesGroupBy.value_counts
,以unstack
进行整形,最后以days = {d : 0 for d in ['Sun', 'Mon', 'Tu', ...] }
for i in range(100):
days[myrandom.days_of_week()] += 1
print(days)
进行除法:
sum
np.random.seed(142)
data = np.random.choice(['Passed','Failed'], size=100)
times = pd.date_range('20180101',freq='3H',periods=100)
df = pd.DataFrame({'A':data},index=times)
#print (df)