2017-04-04 115 views
0

此重复值的数据帧是数据帧我有:大熊猫如何重塑包含列

 chr value region 
     chr22  1 21-77 
     chr6  3 12-65 
     chr3  5 73-81 
     chr3  8 91-96 

而这正是我需要的:

     21-77 12-65 73-81 91-96 
      chr22  1  0  0  0       
      chr6   0  3  0  0 
      chr3   0  0  5  8 

请注意第一列的初始数据帧包含重复值。 (如chr3)

请问您能告诉我该怎么做到。 在此先感谢。

+1

这应该很容易与大熊猫做到请给http://pandas.pydata.org/pandas-docs/stable/reshaping.html读 – nehiljain

回答

1

看起来像大熊猫的完美应用pivot_table

值得强调的是pivot_table使用numpy的意思是作为聚合函数(如果有使用相同指数&列多的意见。因此,它隐含在默认情况下需要数(INT /浮动)的值。

frame是包含数据大熊猫据帧:

import pandas as pd 

cc = ['chr', 'value', 'region'] 
vals = [['chr22', 1, '21-77'], 
     ['chr6',  3, '12-65'], 
     ['chr3',  5, '73-81'], 
     ['chr3',  8, '91-96']] 

frame = pd.DataFrame(vals, columns = cc) 

result = pd.pivot_table(frame, 
         values = 'value', index = ['chr'], columns = ['region'], 
         fill_value = 0) 
+0

它会引发DataError(”没有数字类型来聚合') pandas.core.base.Dat aError:没有数字类型要聚合 它可能是什么原因? – anilbey

+0

这是我用过的例子,它运行正常。你确定这是你的真实案例的代表吗? – FLab

+0

你使用哪个版本的熊猫? – FLab

0

this链接帮助?

为了将来的参考,请在发布问题前进行调查,因为可能已经有答案可以帮助你,或者已经有人解决了你遇到的同样问题。