簡體   English   中英

轉換熊貓數據框

[英]Transform Pandas Dataframe

我有看起來像這樣的DataFrame

exec       ms        tp    lu    ru
0   exec1     16.0    240.87  2.30  0.85
1   exec1     16.0    243.72  2.35  0.84
2   exec1     16.0    234.16  2.38  0.92
3   exec1     16.0    244.71  2.35  0.84
4   exec1     16.0    240.74  2.39  0.90
5   exec1    128.0   1686.78  2.09  0.69
6   exec1    128.0   1704.36  2.00  0.44
7   exec1    128.0   1686.45  2.07  0.60
8   exec1    128.0   1722.61  2.07  0.45
9   exec1    128.0   1726.15  2.08  0.50
10  exec1   1024.0   5754.92  2.23  0.93
11  exec1   1024.0   5740.71  2.24  0.93
12  exec1   1024.0   5751.58  2.24  0.96
13  exec1   1024.0   5819.63  2.23  0.92
14  exec1   1024.0   5797.03  2.22  0.96
15  exec1   8192.0  37833.45  1.91  3.87
16  exec1   8192.0  38154.95  2.00  3.87
17  exec1   8192.0  38178.19  2.02  3.85
18  exec1   8192.0  38152.86  1.95  3.84
19  exec1   8192.0  35209.98  1.80  3.65
20  exec1  16384.0  38109.76  1.81  3.84
21  exec1  16384.0  38059.07  1.76  3.90
22  exec1  16384.0  36683.24  1.54  3.71
23  exec1  16384.0  37908.00  1.73  3.85
24  exec1  16384.0  37014.79  1.71  3.75

我想從mstpluru的數據創建列,並將它們作為分層列,並使用exec作為索引,如下所示:

lu                                          ru                                         tp
exec    16.0    128.0   1024.0  8192.0  16384.0     16.0    128.0   1024.0  8192.0  16384.0     16.0    128.0   1024.0  8192.0  16384.0
exec1   2.30    2.09    2.23    1.91    1.81    0.85    0.69    0.93    3.87    3.84    240.87  1686.78     5754.92     37833.45    38109.76
exec1   2.35    2.00    2.24    2.00    1.76    0.84    0.44    0.93    3.87    3.90    243.72  1704.36     5740.71     38154.95    38059.07
exec1   2.38    2.07    2.24    2.02    1.54    0.92    0.60    0.96    3.85    3.71    234.16  1686.45     5751.58     38178.19    36683.24
exec1   2.35    2.07    2.23    1.95    1.73    0.84    0.45    0.92    3.84    3.85    244.71  1722.61     5819.63     38152.86    37908.00
exec1   2.39    2.08    2.22    1.80    1.71    0.90    0.50    0.96    3.65    3.75    240.74  1726.15     5797.03     35209.98    37014.79

我嘗試使用pd.pivot_table,但是它創建了不需要的nans

可能需要groupby + cumcount創建一個額外的密鑰,然后進行pivot轉換,這里我正在使用unstack ,如果您需要檢查數據透視 ,我個人認為這比官方文檔更好

df.assign(key=df.groupby(['exec','ms']).cumcount()).set_index(['exec','ms','key']).unstack([1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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