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