返回

Pandas行转列的4大秘笈,数据处理更轻松!

人工智能

引言

数据分析中,数据处理是一个至关重要的环节。Pandas作为Python中强大的数据处理库,提供了丰富的函数和方法,其中行列转换是数据处理中必不可少的技巧之一。本文将为您介绍Pandas中4种常用的行列转换技巧,帮助您轻松高效地处理和转换数据。

1. melt:将宽表转换为长表

melt函数用于将宽表(多个列存储不同类别数据)转换为长表(每个类别数据存储在单独的列中)。语法如下:

df_long = pd.melt(df, id_vars=["列名"], value_vars=["列名", "列名", ...])

其中,id_vars指定不变的列(作为索引列),value_vars指定需要转换的列。

2. transpose(T)或 transpose:将行转换为列

transpose函数(或T属性)用于将数据框的行和列进行互换。语法如下:

df_T = df.T
或
df_T = df.transpose()

3. wide_to_long:将多个宽表连接成一个长表

wide_to_long函数用于将多个宽表连接成一个长表。语法如下:

df_long = pd.wide_to_long(df, stubnames=["列名前缀"], i=["索引列名"], j=["列名"], sep="_")

其中,stubnames指定新列名前缀,i指定索引列,j指定新列名,sep指定分隔符。

4. explode:将列表或数组元素拆分成行

explode函数用于将列表或数组元素拆分成单独的行。语法如下:

df_exploded = df["列名"].explode()

其中,列名指定包含列表或数组元素的列。

实例

假设我们有一个如下所示的宽表:

df = pd.DataFrame({
    "Name": ["John", "Jane", "Peter"],
    "Age": [25, 30, 28],
    "Hobbies": [["篮球", "足球"], ["唱歌", "跳舞"], ["编程", "游戏"]]
})

使用melt函数将宽表转换为长表:

df_long = df.melt(id_vars=["Name"], value_vars=["Age", "Hobbies"])

结果:

   Name  variable  value
0  John     Age     25
1  Jane     Age     30
2  Peter     Age     28
3  John  Hobbies  篮球
4  John  Hobbies  足球
5  Jane  Hobbies  唱歌
6  Jane  Hobbies  跳舞
7  Peter Hobbies  编程
8  Peter Hobbies  游戏

使用transpose函数将行转换为列:

df_T = df.T

结果:

   John  Jane  Peter
Age   25   30   28
Hobbies  [篮球, 足球]  [唱歌, 跳舞]  [编程, 游戏]

使用wide_to_long函数将多个宽表连接成一个长表:

df1 = pd.DataFrame({
    "Name": ["John", "Jane"],
    "Age": [25, 30],
    "Hobby1": ["篮球", "唱歌"]
})

df2 = pd.DataFrame({
    "Name": ["John", "Jane"],
    "Age": [25, 30],
    "Hobby2": ["足球", "跳舞"]
})

df_long = pd.wide_to_long([df1, df2], stubnames=["Hobby"], i="Name", j="Hobby", sep="_")

结果:

   Name  Hobby_Hobby1  Hobby_Hobby2
0  John         篮球         足球
1  Jane         唱歌         跳舞

使用explode函数将列表或数组元素拆分成行:

df["Hobbies_Exploded"] = df["Hobbies"].explode()

结果:

   Name  Age  Hobbies           Hobbies_Exploded
0  John   25  [篮球, 足球]           篮球
1  John   25  [篮球, 足球]           足球
2  Jane   30  [唱歌, 跳舞]           唱歌
3  Jane   30  [唱歌, 跳舞]           跳舞
4  Peter  28  [编程, 游戏]           编程
5  Peter  28  [编程, 游戏]           游戏

结论

通过掌握Pandas中这4种行列转换技巧,您可以轻松高效地处理和转换数据。这些技巧可以帮助您解决各种数据处理任务,例如数据重塑、数据合并和数据拆分。熟练掌握这些技巧将大大提升您的数据分析能力,让您从繁琐的数据处理任务中解放出来,专注于洞察的发现和决策制定。