pandas32 unstack将数据的行“旋转” 为列( tcy)

unstack将数据的行“旋转” 为列 2019/1/2

===============================================================

1.函数

DataFrame.unstack(level = -1,fill_value = None )将数据行旋转为列

参数:
      level:int,string或者这些列表,默认为-1(最后一级)
            unstack索引的级别,可以通过级别名称
      fill_value:如果unstack生成,则用此值替换NaN

返回:数据帧或系列

说明:作为旋转轴的级别将会成为结果中的最低级别

==============================================================

2.实例

实例1

index = pd.MultiIndex.from_tuples([('s1', 'a'), ('s1', 'b'), ('s2', 'a'), ('s2', 'b')])
s = pd.Series(np.arange(1, 5), index=index)
s.unstack(level=0).unstack()#结果同s
   
 
s                s.unstack(level=-1)      s.unstack(level=0)
s1  a    1                  a    b                  s1   s2
      b    2            s1  1    2              a   1     3
s2  a    3            s2  3    4              b   2     4 
      b    4
dtype: int32

 

实例2

tuples = list(zip(*[['Tom', 'Tom','Bob', 'Bob'],['kg', 'km', 'kg', 'km' ]]))
index = pd.MultiIndex.from_tuples(tuples, names=['R1', 'R2'])
index1=pd.Index(['A', 'B'], name='C1' )
df = pd.DataFrame(np.arange(8).reshape(4, 2), index=index, columns=index1)
   
                            df.unstack('R2'#作为旋转轴的级别将会成为结果中的最低级别
df                         df.unstack()               df.unstack('R1')
                   
C1         A  B        C1   A       B               C1    A          B
R1  R2                R2  kg km kg km        R1 Bob Tom Bob Tom
Tom kg  0  1        R1                              R2   
       km  2  3        Bob  4   6  5  7           kg     4       0     5      1
Bob kg  4  5        Tom  0   2  1  3           km    6       2     7      3
       km  6  7                    
                   
df                        df.unstack(['R1','R2'])  df.unstack(['R2','R1'])
                   
C1         A  B        C1  R1   R2                C1  R2  R1   
R1  R2                 A  Tom  kg    0            A   kg  Tom    0
Tom kg  0  1                     km    2                km  Tom    2
       km  2  3             Bob   kg    4                 kg   Bob    4
Bob kg  4  5                      km    6                 km  Bob    6
       km  6  7        B   Tom  kg    1            B   kg  Tom    1
                                         km    3                 km  Tom   3
                                Bob   kg    5                  kg   Bob    5
                                        km     7                 km   Bob   7
                           dtype: int32                  dtype: int32

 

 

你可能感兴趣的:(pandas)