三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Python Pandas多列合并成一长列(扁平化)

Python Pandas多列合并成一长列(扁平化)

测试数据定义(定义时是按列定义的,可参考打印结果):

import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], # 第一列,不是第一行 'B': [4, 5, 6], # 第二列,不是第二行 'C': [7, 8, 9] # 第三列,不是第三行 })

打印df(打印结果是实际的行列):

A B C 0 1 4 7 1 2 5 8 2 3 6 9

使用melt方法,该方法按列拼接多列并保留原列名,具体如下:

melted_df = pd.melt(df, var_name='Variable', value_name='Value')

打印扁平化后的melted_df:

Variable Value 0 A 1 1 A 2 2 A 3 3 B 4 4 B 5 5 B 6 6 C 7 7 C 8 8 C 9

使用concat方法,该方法按列拼接但不保留列名,具体如下:

concated_df = pd.concat([df['A'], df['B'], df['C']], ignore_index=True)

打印扁平化后的concated_df:

0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 dtype: int64

使用stack方法,改方法按行拼接且不保留列名,具体如下:

stacked_df = df.stack().reset_index(drop=True)

打印扁平化后的stacked_df:

0 1 1 4 2 7 3 2 4 5 5 8 6 3 7 6 8 9 dtype: int64
← 返回列表