我有一个Pandas数据帧:
Date Type Section Status
--------------------------------------------
0 1-Apr Type1 A Present
1 1-Apr Type2 A Absent
2 1-Apr Type2 A Present
3 1-Apr Type1 B Absent
4 2-Apr Type1 A Present
5 2-Apr Type2 C Present
6 2-Apr Type2 C Present
我想把DF分成不同的格式:
Date Type A_Pre A_Abs B_Pre B_Abs C_Pre C_Abs
------------------------------------------------------------------------------
0 1-Apr Type1 1 0 0 1 0 0
1 Type2 1 1 0 0 0 0
2 2-Apr Type1 1 0 0 0 0 0
3 Type2 0 0 0 0 1 1
我想从原始表中获取聚合报告,其中条目按日期和类型分组,然后分成各种类型。经过2天的尝试,我不知道如何处理这种方法。
非常感谢任何帮助。
答案 0 :(得分:1)
首先,我会创建您希望聚合填充零和一的列,然后使用groupby并对值进行简单求和...
我没有尝试过这个,但我认为以下内容应该有效:
Present = ['A_Pre', 'B_Pre', 'C_Pre' ]
Absent = ['A_Abs', 'B_Abs', 'C_Abs' ]
for string in Present:
DF[string] = pd.Series([1 if stat == 'Present' and sect == string[0] else 0
for stat, sect in zip(DF['Status'], DF['Section'])],
index = DF.index)
for string in Absent:
DF[string] = pd.Series([1 if stat == 'Absent' and sect == string[0] else 0
for stat, sect in zip(DF['Status'], DF['Section'])],
index = DF.index)
DF.groupby(['Date', 'type']).agg(sum)