Pandas 将列值转换为列
在本文中,我们将介绍如何在Pandas中将列值转换为列。这对于数据转换和清洗非常有用。
阅读更多:Pandas 教程
什么是Pandas?
如果你是Python数据科学家,那么你一定听说过Pandas。Pandas是一个强大的数据分析库,提供了许多数据操作和转换的功能。它可以将各种数据源导入为Pandas数据框架,包括CSV、Excel、SQL数据库和JSON格式等。
示例数据
要进行示例,请先导入Pandas库并使用以下示例数据:
import pandas as pd
data = {'Name': ['John', 'Jane', 'Joe', 'Jim'],
'Age': [25, 30, 18, 21],
'Gender': ['Male', 'Female', 'Male', 'Male']}
df = pd.DataFrame(data)
此处我们使用了一个简单的数据集,其中包含四个人的姓名、年龄和性别。Pandas数据框架(DataFrame)是一种二维表格形式的数据结构,可以将数据以行和列的形式组织起来。
转换Pandas列值为列
有时候,我们需要将某些值作为列,而不是作为行来表示数据。这时候就需要使用pivot或pivot_table功能。以下是示例代码:
使用pivot
df_pivot = df.pivot(index=None, columns='Gender', values='Age')
print(df_pivot)
输出:
Gender Female Male
0 NaN 25.0
1 30.0 NaN
2 NaN 18.0
3 NaN 21.0
使用pivot函数将’Gender’这一列中的值作为新列。’Age’列中的值则分别对应新列中的数值。为了方便,我们还删除了原始数据框架中的索引列。注意,本例中的数据集非常小,所以产生了一些缺失数据(NaN)。
使用pivot_table
经常使用的是pivot_table。它与pivot类似,但可以处理含有重复条目的复合索引。以下是示例代码:
df_pivot_table = pd.pivot_table(df, values='Age', index=['Name'], columns=['Gender'])
print(df_pivot_table)
输出:
Gender Female Male
Name
Jane 30.0 NaN
Jim NaN 21.0
Joe NaN 18.0
John NaN 25.0
使用pivot_table函数将’Gender’这一列中的值作为新列,并用’Name’作为索引列。’Age’列中的值则分别对应新列中的数值。这样就不需要生成新的数据框架了,因为原来的索引列已经能够用作转换的索引。
总结
在本文中,我们介绍了Pandas中如何将列值转换为列。使用pivot或pivot_table函数可以大大简化操作,并减少代码复杂度。Pandas是Python数据科学家的有力工具之一。
极客教程