mars.dataframe.DataFrame.transpose#

DataFrame.transpose()#

转换索引和列。

通过将行作为列并反之,沿其主对角线反射DataFrame。属性 T 是对方法 transpose() 的访问器。

Parameters

*args (tuple, 可选) – 为了与NumPy的兼容性而接受。

Returns

转置后的数据框。

Return type

数据框

另请参阅

numpy.transpose

对给定数组的维度进行排列。

备注

转置一个具有混合数据类型的 DataFrame 将会得到一个具有 object 数据类型的均匀 DataFrame。

示例

具有同质数据类型的方形数据框

>>> import mars.dataframe as md
>>> d1 = {'col1': [1, 2], 'col2': [3, 4]}
>>> df1 = md.DataFrame(data=d1).execute()
>>> df1
    col1  col2
0     1     3
1     2     4
>>> df1_transposed = df1.T.execute() # or df1.transpose().execute()
>>> df1_transposed
      0  1
col1  1  2
col2  3  4

当原始数据框中的dtype是同质时,我们得到一个具有相同dtype的转置数据框:

>>> df1.dtypes
col1    int64
col2    int64
dtype: object
>>> df1_transposed.dtypes
0    int64
1    int64
dtype: object

具有混合数据类型的非方形数据框

>>> d2 = {'name': ['Alice', 'Bob'],
...       'score': [9.5, 8],
...       'employed': [False, True],
...       'kids': [0, 0]}
>>> df2 = md.DataFrame(data=d2).execute()
>>> df2
    name  score  employed  kids
0  Alice    9.5     False     0
1    Bob    8.0      True     0
>>> df2_transposed = df2.T.execute() # or df2.transpose().execute()
>>> df2_transposed
              0     1
name      Alice   Bob
score       9.5   8.0
employed  False  True
kids          0     0

当数据框具有混合数据类型时,我们得到一个转置的数据框,其 object 数据类型:

>>> df2.dtypes
name         object
score       float64
employed       bool
kids          int64
dtype: object
>>> df2_transposed.dtypes
0    object
1    object
dtype: object