0
我有一個熊貓數據框填寫使用索引元素,如下圖所示:重新索引數據幀;從多列
I1 V1 I2 V2 I3 V3 ...
0 13.823560 0.000000 13.639405 0.000000 13.455246 0.000000 ...
1 13.823376 0.001274 13.639224 0.001273 13.455068 0.001272 ...
2 13.823193 0.002547 13.639043 0.002546 13.454889 0.002544 ...
3 13.823009 0.003821 13.638862 0.003819 13.454711 0.003817 ...
4 13.822826 0.005095 13.638681 0.005092 13.454532 0.005089 ...
5 13.822642 0.006368 13.638500 0.006365 13.454354 0.006361 ...
... ... ... ... ... ... ... ...
495 0.613282 0.630456 0.610912 0.630109 0.608497 0.629756 ...
496 0.455202 0.631730 0.453456 0.631381 0.451677 0.631028 ...
497 0.296663 0.633004 0.295533 0.632654 0.294383 0.632301 ...
498 0.137670 0.634277 0.137149 0.633927 0.136619 0.633573 ...
499 -0.021770 0.635551 -0.021688 0.635200 -0.021605 0.634845 ...
[500 rows x 120 columns]
我想要做的就是重塑數據幀,使它看起來像這樣:
#(I as new index)
I V1 V2 V3 ...
13.823560 0.000000 NaN NaN ...
13.823376 0.001274 NaN NaN ...
13.823193 0.002547 NaN NaN ...
13.823009 0.003821 NaN NaN ...
13.822642 0.005095 NaN NaN ...
... ... ... ... ...
0.137670 0.630456 NaN NaN ...
0.136619 NaN NaN 0.633573 ...
-0.021605 NaN NaN 0.634845 ...
-0.021688 NaN 0.635200 NaN ...
-0.021770 0.635551 NaN NaN ...
[30000 rows x 60 columns]
在換句話說,我想填充新的DataFrame索引,並在所有「I」標籤列(在我的情況下爲1到60)中遇到所有值。但是,我現在還想保留其餘的V-column,只要它們仍然鏈接到它們原來的I-valued值。
嘗試以下...
dfen = pd.melt(dfen, id_vars=['I'+str(b) for b in xrange(1,len(irlist)+1)], var_name='id', value_name='V')
當...數據框被擠壓到只有兩列,所以我想我會需要的東西棘手。
任何人都知道如何以上面顯示的方式重新索引DataFrame?
該函數會被調用很多次,所以速度優化也非常重要。
是否也可以取得同樣的數據幀,但隨後NaN的副本,而不是爲(行,列)值上的V-列在原始DataFrame中沒有鏈接? (例如,I = 13.823560只與V1 = 0.000000匹配,另外兩個(V2,V3)與NaN匹配) –
查看更新 - 這更接近您要查找的內容嗎? – Stefan
正是我在找的 - 太棒了!非常感謝! –