2024-07-02 11:40:18 发布
网友
如何使用pandas从下面的数据中获取汇总表:
ID Condition Confirmed D0119 Bad Yes D0119 Good No D0117 Bad Yes D0110 Bad Undefined D1011 Bad Yes D1011 Good Yes D1001 Bad Yes D1001 Bad Yes
所需输出:
有人能帮忙吗?谢谢
你可以这样做:
In [123]: (df.assign(Bad=df.Condition=='Bad') ...: .groupby('ID') ...: .agg({'Condition':pd.Series.tolist, ...: 'Confirmed':pd.Series.tolist, ...: 'Bad':'mean'}) ...: ) ...: Out[123]: Bad Condition Confirmed ID D0110 1.0 [Bad] [Undefined] D0117 1.0 [Bad] [Yes] D0119 0.5 [Bad, Good] [Yes, No] D1001 1.0 [Bad, Bad] [Yes, Yes] D1011 0.5 [Bad, Good] [Yes, Yes]
垂直变体:
考虑以下几点。在
import pandas as pd df = pd.DataFrame({'ID':['D0119', 'D0119', 'D0117', 'D0110', 'D1011', 'D1011', 'D1001', 'D1001'], 'Condition':['Bad', 'Good', 'Bad', 'Bad', 'Bad', 'Good', 'Bad', 'Bad'], 'Confirmed':['Yes', 'No', 'Yes', 'Undefined', 'Yes', 'Yes', 'Yes', 'Yes']}) df_grp = df.loc[df['Confirmed'] != 'Undefined'].groupby('ID') summary = pd.DataFrame({'Condition':df_grp['Condition'], 'pnt_bad':df_grp['Condition'].apply(lambda x: sum(x=='Bad')/len(x))})
请注意,这种方法不会保留只有“未定义”状态的记录的外观。在
你可以这样做:
垂直变体:
^{pr2}$考虑以下几点。在
请注意,这种方法不会保留只有“未定义”状态的记录的外观。在
相关问题 更多 >
编程相关推荐