[英]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.