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
正是我在找的 - 太棒了!非常感谢! –