Python 熊猫计数groupby结果中的特定值
我刚刚学习了如何使用datetime索引按日期对Pandas数据帧进行分组。我如何计算groupby每天返回的特定值(“通过”或“失败”)的数量 我的目标是计算每日收益率:收益率=通过计数/(通过计数+失败计数) 我想你需要或者,重塑为,最后除以,求和:Python 熊猫计数groupby结果中的特定值,python,pandas,Python,Pandas,我刚刚学习了如何使用datetime索引按日期对Pandas数据帧进行分组。我如何计算groupby每天返回的特定值(“通过”或“失败”)的数量 我的目标是计算每日收益率:收益率=通过计数/(通过计数+失败计数) 我想你需要或者,重塑为,最后除以,求和: np.random.seed(142) data = np.random.choice(['Passed','Failed'], size=100) times = pd.date_range('20180101',freq='3H',per
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)
谢谢如何从df1结果中提取行?df1['2018-01-13']抛出一个键错误。@stephenb-您需要
loc
likeprint(df1.loc['2018-01-13'])
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)
df1 = df.groupby([pd.Grouper(freq='1D'), 'A']).size().unstack(fill_value=0)
#alternative
#df1 = df.groupby(pd.Grouper(freq='1D'))['A'].value_counts().unstack(fill_value=0)
df1['new'] = df1['Passed'].div(df1.sum(axis=1))
#alternative
#df1['new'] = df1['Passed'].div(df1['Passed'].add(df1['Failed']))
print (df1)
A Failed Passed new
2018-01-01 5 3 0.375
2018-01-02 5 3 0.375
2018-01-03 4 4 0.500
2018-01-04 4 4 0.500
2018-01-05 4 4 0.500
2018-01-06 3 5 0.625
2018-01-07 4 4 0.500
2018-01-08 5 3 0.375
2018-01-09 4 4 0.500
2018-01-10 4 4 0.500
2018-01-11 4 4 0.500
2018-01-12 7 1 0.125
2018-01-13 0 4 1.000