看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
数据的转置是指对数据的行列进行互换,行转列和列转行,在这个过程中数据的形状进行了变化,数据逻辑也发生了变化。pandas 提供了非常便捷的 df.T
操作进行转置。
在数据处理分析过程中,为了充分利用行列的关系表达,我们需要对原数据的行列进行互换。转置的过程其实是沿着左上与右下形成对角线进行翻转。
df.T
属性是 df.transpose()
方法的别名、简写方法,今后我们只要记住 .T
就好啦。
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 中数据类型相同,那么转置后类型不变:
df1.dtypes
'''
col1 int64
col2 int64
dtype: object
'''
df1_transposed.dtypes
'''
0 int64
1 int64
dtype: object
'''
如果有多种类型,则为 object
:
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
employed False True
kids 0 0
'''
查看类型:
df2.dtypes
'''name object
score float64
employed bool
kids int64
dtype: object
'''
df2_transposed.dtypes
'''
0 object
1 object
dtype: object
'''
Series
也支持转置,不过它返回的是它自己,没有变化。
Pandas 提供了一个 DataFrame.swapaxes(axis1, axis2, copy=True)
用来做轴(行列)交换。如果行列交换就相当于 df.T
。
df.swapaxes("index", "columns") # 行列交换,相当于 df.T
df.swapaxes("columns", "index") # 同上
df.swapaxes("index", "columns", copy=True) # 使生效
df.swapaxes("columns", "columns") # 无变化
df.swapaxes("index", "index") # 无变化
更新时间:2021-03-08 06:43:56 标签:pandas 转置