1 回答
TA贡献1828条经验 获得超3个赞
为了提高性能,您可以为每个 AlarmClass 和 AlarmType 旋转数据,然后连接结果。
i = df.pivot_table(index=['SystemID', 'Day'],
columns='AlarmClass',
values='AlarmCount',
aggfunc='sum',
fill_value=0)
j = df.pivot_table(index=['SystemID', 'Day'],
columns='AlarmType',
values='AlarmCount',
aggfunc='sum',
fill_value=0)
i.columns = i.columns.map(lambda x: 'AlarmClass-' + ''.join(y[0] for y in x.split()))
j.columns = j.columns.map(lambda x: 'AlarmType-' + ''.join(y[0] for y in x.split()))
df = pd.concat([i, j], axis=1).reset_index()
print(df)
SystemID Day AlarmClass-ELM \
0 5F891F03-3114-4E62-9A7D-CD2A04061364 04/08/2018 0
1 5F891F03-3114-4E62-9A7D-CD2A04061364 05/08/2018 2
2 95EE8B57-6BE9-4175-B901-B6B3BEE1844D 05/08/2018 0
3 95EE8B57-6BE9-4175-B901-B6B3BEE1844D 06/08/2018 0
AlarmClass-S AlarmType-AL AlarmType-US
4 0 4
0 2 0
2 0 2
4 0 4
添加回答
举报