【发布时间】:2019-08-19 19:24:35
【问题描述】:
我想使用聚合函数 count 按日期和小时分组,并在输出中为每个不同的 ID(在列中)拆分结果。
df = pd.DataFrame({'GpID': [1,1,0,1,1,0,1,1,2,2,1,1,2,1,1,0,1,2,0,1,1],
'HR': [1,1,1,1,1,1,1, 2,2,2,2,1,1,1, 2,2,2,2,3,3,3],
'Date_': [1,1,1,2,2,2,2, 2,2,2,2,3,3,3, 3,3,3,3,3,3,3]
})
输出格式是like
df_out = pd.DataFrame({ 'HR': [1,2,3,1,2,3],
'Date_': [1,1,1,2,2,2],
'GpID_0': [1,2,5,1,4,2],
'GpID_1': [1,2,5,1,4,2],
'GpID_2': [4,2,5,1,4,2],
})
试过了:
# 1st try
df_g = df.groupby(["Hr", "Date_"], observed=False).count().fillna(0).unstack()
# 2nd try
df_g = df.groupby(["Hr", "Date_","GpId"], observed=False).count().fillna(0).unstack(-1)
# 3rd try
df_g = df.groupby(["Hr", "Date_"], observed=False).count().fillna(0).unstack()
还没有准确的
【问题讨论】:
-
你有尝试吗?
-
试过 df_g = df.groupby(["Hr, "Date_"],observed=False).count().fillna(0).unstack() 和 df_g = df.groupby([" Hr, "Date_","GpId"],observed=False).count().fillna(0).unstack(-1) 和 df_g = df.groupby(["Hr, "Date_"],observed=False ).count().fillna(0).unstack() 注意还准确
-
把它放在问题中。
-
我相信你给出的输出不是你试图解释的。
e.g. There is no row where ID=2 and both Date_=1 & HR=1. And in your final df it is written 4 instead of 0 (or Nan)