按行拆分Pandas数据框架

  • Post category:Python

按行拆分Pandas数据框架是一种将数据框架沿行方向拆分为多个数据框架的方法,可以帮助我们方便地处理大型数据。以下是按行拆分Pandas数据框架的完整攻略:

1. 数据框架

首先,我们需要创建一个示例数据框架,以便演示拆分数据框架的方法:

import pandas as pd

df = pd.DataFrame({'姓名': ['张三', '李四', '王五', '赵六'],
                   '性别': ['男', '女', '男', '女'],
                   '年龄': [25, 27, 26, 24],
                   '收入': [3000, 3500, 3200, 2800]})
print(df)

该数据框架包含4列,每列有4个数据,如下所示:

  姓名 性别  年龄   收入
0  张三  男  25  3000
1  李四  女  27  3500
2  王五  男  26  3200
3  赵六  女  24  2800

2. 拆分数据框架

方法一:拆分为多个数据框架

我们可以使用Pandas的loc方法按行拆分数据框架,将每行数据拆分为一个数据框架:

for i in range(df.shape[0]):
    print(df.loc[[i]])

这将输出4个数据框架,分别是:

  姓名 性别  年龄   收入
0  张三  男  25  3000

  姓名 性别  年龄   收入
1  李四  女  27  3500

  姓名 性别  年龄   收入
2  王五  男  26  3200

  姓名 性别  年龄   收入
3  赵六  女  24  2800

这种方法适用于需要对每行数据分别进行操作的情况。

方法二:拆分为多个数据集合

如果我们要将拆分的数据集合在一起,可以使用pd.concat方法:

dfs = []
for i in range(df.shape[0]):
    dfs.append(df.loc[[i]])

result = pd.concat(dfs)
print(result)

这将输出一个由4个数据框架拼接而成的数据框架,如下所示:

  姓名 性别  年龄   收入
0  张三  男  25  3000
1  李四  女  27  3500
2  王五  男  26  3200
3  赵六  女  24  2800

方法三:使用explode方法

Pandas还提供了一个更方便的方法explode,它可以将某一列中的元素拆分为多行:

result = df.explode('姓名')
print(result)

这将输出一个由4行数据组成的数据框架,每行数据只有一个姓名:

  姓名 性别  年龄   收入
0  张三  男  25  3000
1  李四  女  27  3500
2  王五  男  26  3200
3  赵六  女  24  2800

注意,使用explode方法必须指定需要拆分的列名称。

3. 总结

按行拆分Pandas数据框架是非常简单的,在创建示例数据框架的基础上,我们介绍了3种拆分数据框架的方法。第一种方法适用于对每行数据进行操作的情况,第二种方法适用于需要将拆分的数据集合在一起的情况,第三种方法更加方便快捷,适用于只需要将某一列拆分为多行的情况。