pandas.DataFrame.transpose#
- DataFrame.transpose(*args, copy=<no_default>)[源代码]#
转置索引和列。
通过将行写成列,反之亦然,来反射 DataFrame 绕其主对角线。属性
T是方法transpose()的访问器。- 参数:
- *args元组, 可选
为了与 NumPy 兼容而接受。
- copybool,默认值 False
此关键字已被忽略;更改其值将不会影响方法。
请注意,对于混合 dtype 的 DataFrames,或包含任何扩展类型的 DataFrames,始终需要复制。
已弃用,版本 3.0.0: 此关键字已被忽略,并将在 pandas 4.0 中删除。自 pandas 3.0 起,此方法始终返回一个新对象,并使用延迟复制机制,该机制会推迟复制直到必要时(写时复制)。有关更多详细信息,请参阅关于写时复制的用户指南。
- 返回:
- DataFrame
转置后的 DataFrame。
另请参阅
numpy.transpose排列给定数组的维度。
注意
转置具有混合 dtypes 的 DataFrame 将导致一个具有 object dtype 的同质 DataFrame。在这种情况下,始终会复制数据。
示例
同质 dtype 的方形 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
当原始 DataFrame 的 dtype 是同质的时,我们得到一个具有相同 dtype 的转置 DataFrame
>>> df1.dtypes col1 int64 col2 int64 dtype: object >>> df1_transposed.dtypes 0 int64 1 int64 dtype: object
非方形 DataFrame 具有混合 dtypes
>>> d2 = { ... "name": ["Alice", "Bob"], ... "score": [9.5, 8], ... "employed": [False, True], ... "kids": [0, 0], ... } >>> df2 = pd.DataFrame(data=d2) >>> df2 name score employed kids 0 Alice 9.5 False 0 1 Bob 8.0 True 0
>>> df2_transposed = df2.T # or df2.transpose() >>> df2_transposed 0 1 name Alice Bob score 9.5 8.0 employed False True kids 0 0
当 DataFrame 具有混合 dtypes 时,我们得到一个具有 object dtype 的转置 DataFrame
>>> df2.dtypes name str score float64 employed bool kids int64 dtype: object >>> df2_transposed.dtypes 0 object 1 object dtype: object