DataFrame.transpose(*args, copy=False)[source]
转置索引和列。
通过将行写为列将DataFrame反映在其主要对角线上,反之亦然。该属性T是方法的访问器 transpose()。
参数:*args :tuple, 可选
接受与NumPy的兼容性。
copy :bool, 默认为 False
是否在转置后复制数据,
即使对于具有单个dtype的DataFrame也是如此。
请注意,
对于混合dtypeDataFrame或具有任何扩展名类型的DataFrame,
始终需要副本。
返回值:DataFrame
转置的DataFrame。
Notes
转换带有混合dtypes的DataFrame将导致对象 dtype具有同构的DataFrame 。在这种情况下,始终会复制数据。
例子
具有齐次dtype的Square DataFrame>>> d1 = {'col1': [1, 2], 'col2': [3, 4]}
>>> df1 = pd.DataFrame(data=d1)
>>> df1
col1 col2
0 1 3
1 2 4
>>> df1_transposed = df1.T # or df1.transpose()
>>> df1_transposed
0 1
col1 1 2
col2 3 4
当dtype在原始DataFrame中是同构的时,我们将获得具有相同dtype的转置DataFrame:>>> df1.dtypes
col1 int64
col2 int64
dtype: object
>>> df1_transposed.dtypes
0 int64
1 int64
dtype: object
具有混合dtypes的非方形DataFrame>>> d2 = {'name': ['孤独的奇迹', 'Bob'],
... 'score': [9.5, 8],
... 'employed': [False, True],
... 'kids': [0, 0]}
>>> df2 = pd.DataFrame(data=d2)
>>> df2
name score employed kids
0 孤独的奇迹 9.5 False 0
1 Bob 8.0 True 0
>>> df2_transposed = df2.T # or df2.transpose()
>>> df2_transposed
0 1
name 孤独的奇迹 Bob
score 9.5 8
employed False True
kids 0 0
当DataFrame具有混合的dtypes时,我们得到一个对象 dtype的转置DataFrame :>>> df2.dtypes
name object
score float64
employed bool
kids int64
dtype: object
>>> df2_transposed.dtypes
0 object
1 object
dtype: object