我有一个熊猫数据帧,如下所示:
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]
换句话说,我想用所有“I”标记的列(在我的例子中是1到60)中遇到的所有值填充新的DataFrame索引。但是,我也希望保持其余的V列暂时不被触动-只要它们仍然链接到其原始I对应值。你知道吗
尝试以下操作时。。。你知道吗
dfen = pd.melt(dfen, id_vars=['I'+str(b) for b in xrange(1,len(irlist)+1)], var_name='id', value_name='V')
。。。数据帧被压缩到只有两列,所以我想我需要一些更复杂的东西。你知道吗
有人知道如何用上面显示的方式重新索引数据帧吗?你知道吗
函数会被多次调用,因此速度优化也非常重要。你知道吗
开始于:
尝试:
要获得:
相关问题 更多 >
编程相关推荐