将标题指定为TimStamp,性别和种族, 我想通过时间戳记来区分性别和种族组。给定性别= M / F种族= A / B / C / D / E。
种族= E可能不存在于数据集中,但可以通过种族E预测数据。 因此,占位符很重要,值为零。
数据和输出示例如下所示。
时间戳 12:30 12:30 12:30 12:30 12:31, 12:31, 12:32
性别= M F, F, F, M F, M
种族= 一种, 一种, B, B, C, 一种, D
答案 0 :(得分:2)
您将需要为此创建两个数据透视表:
要获得具有Race
中所有指定类别的表,您需要将Race
转换为分类变量:
df["Race"] = pd.Categorical(df.Race, categories=["A", "B", "C", "D", "E"])
性别:
df_g = df.groupby(["Time_stamp", "Gender"], observed=False).count().fillna(0).unstack()
对于种族:
df_r = (df.groupby(["Time_stamp", "Race"], observed=False)
.count().fillna(0).reset_index()
.astype({"Race": str}).pivot_table(index="Time_stamp", columns="Race"))
然后您可以加入他们:
df_report = df_r.join(df_g)
df_report.columns = df_report.columns.droplevel()