公众队伍如何以R适当格式重新安排Pandas中的表格

2024-04-25 16:46:23 发布

您现在位置:Python中文网/ 问答频道 /正文

熊猫:

df = pd.DataFrame({'row1':['a','b','a','a','b','b','a','b','b','a'], 'row2':['x','x','y','y','y','x','x','y','x','y'],'col':[1,2,1,2,2,1,2,1,1,2],'val':[34,25,22,53,33,19,42,38,33,61]})

p = pd.pivot_table(df,values='val',rows=['row1','row2'],cols='col')

col         1   2
row1 row2        
a    x     34  42
     y     22  57
b    x     26  25
     y     38  33

是否有可能在适合R中分析的数据框架中重塑透视表?,某种类型的东西:

^{pr2}$

Tags: 数据框架dataframedftablecolvalrows
2条回答

您可以:

>>> pd.melt(p.reset_index(), id_vars=['row1', 'row2'],
            var_name='col', value_name='val')
  row1 row2  col  val
0    a    x    1   34
1    a    y    1   22
2    b    x    1   26
3    b    y    1   38
4    a    x    2   42
5    a    y    2   57
6    b    x    2   25
7    b    y    2   33

它重置索引,生成row1row2列:

^{pr2}$

然后pd.melt在除row1row2id_vars参数)之外的所有列中熔化为一个名为valvalue_name参数)的列,并在名为colvar_name参数)的列中保留它们属于哪一列的信息。在

一种方法是使用^{}

In [11]: p.stack()
Out[11]: 
row1  row2  col
a     x     1      34
            2      42
      y     1      22
            2      57
b     x     1      26
            2      25
      y     1      38
            2      33
dtype: int64

这没有给出name属性,因此必须将其设置为reset the index

^{pr2}$

相关问题 更多 >