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

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
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐