[英]pandas convert some column values to rows
尝试这个:
df.set_index(['time','SignalName'])['value'].unstack()
Output:
SignalName APID1 SLID1 SPID1
time
t_1 1 0 2
t_2 11 0 22
t_3 1 0 20
另外的选择:
df_out = df.set_index(['time','SignalName']).unstack()
df_out.columns = [f'{j}{i}' for i, j in df_out.columns]
df_out.reset_index()
Output:
time APID1value SLID1value SPID1value
0 t_1 1 0 2
1 t_2 11 0 22
2 t_3 1 0 20
重复值,您需要以某种方式聚合时间,这里我选择第一个值,您可以进行求和、平均值、最大值、最小值或您选择的任何聚合。
df.groupby(['time', 'SignalName'])['value'].agg('first').unstack()
Output:
SignalName APID1 SLID1 SPID1
time
t_1 1 0 2
t_2 11 0 22
t_3 1 0 20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.