pandas.DataFrame.transpose # 数据框。转置( * args , copy = False ) [来源] # 转置索引和列。 通过将行写为列来反映 DataFrame 的主对角线,反之亦然。该属性T是方法的访问器 transpose()。 参数: *args元组,可选因与 NumPy 兼容而被接受。 复制bool,默认 False转置后是否复制数据,即使对于具有单一数据类型的 DataFrame 也是如此。 请注意,混合 dtype DataFrame 或具有任何扩展类型的 DataFrame 始终需要副本。 笔记 copy关键字将改变 pandas 3.0 中的行为 。默认情况下会启用Copy-on-Write ,这意味着所有带有 copy关键字的方法都将使用惰性复制机制来推迟复制并忽略copy关键字。 copy关键字将在 pandas 的未来版本中删除。 您已经可以通过启用写入时复制来获得未来的行为和改进pd.options.mode.copy_on_write = True 返回: 数据框转置的 DataFrame。 也可以看看 numpy.transpose排列给定数组的维度。 笔记 转置具有混合数据类型的 DataFrame 将产生具有对象数据类型的同构 DataFrame 。在这种情况下,总是会制作数据的副本。 例子 具有同质数据类型的方形 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 >>> 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 具有混合数据类型时,我们会得到一个具有对象数据类型的转置 DataFrame: >>> df2.dtypes name object score float64 employed bool kids int64 dtype: object >>> df2_transposed.dtypes 0 object 1 object dtype: object