簡體   English   中英

pandas 將某些列值轉換為行

[英]pandas convert some column values to rows

我有一個 Pandas DataFrame df ,看起來像這樣:

在此處輸入圖像描述

我希望它們以這種格式出現:

在此處輸入圖像描述

丟失 SignalName 列。 我需要這種格式,因為我必須 plot 時間與 SDLx 值。 我認為它需要某種迭代器,我嘗試過融化但沒有用。

嘗試這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM