【问题标题】:Pandas DataFrame reshaping to xyz formatPandas DataFrame 重塑为 xyz 格式
【发布时间】:2017-09-05 07:56:08
【问题描述】:

如果我有这样的数据框:

   11-May  12-May  13-May  14-May  Distance
0       1       6      11      16        10
1       2       7      12      17        20
2       3       8      13      18        30
3       4       9      14      19        40
4       5      10      15      20        50

而且,我想重组为只有三列,例如:

    Distance variable  value
0         10   11-May      1
1         20   11-May      2
2         30   11-May      3
3         40   11-May      4
4         50   11-May      5
5         10   12-May      6
6         20   12-May      7
7         30   12-May      8
8         40   12-May      9
9         50   12-May     10
10        10   13-May     11
11        20   13-May     12
12        30   13-May     13
13        40   13-May     14
14        50   13-May     15
15        10   14-May     16
16        20   14-May     17
17        30   14-May     18
18        40   14-May     19
19        50   14-May     20

我如何在 Pandas 中做到这一点?

【问题讨论】:

    标签: pandas dataframe reshape


    【解决方案1】:

    一种使用unstack的方式

    In [1940]: dff.set_index('Distance').unstack().reset_index()
    Out[1940]:
       level_0  Distance   0
    0   11-May        10   1
    1   11-May        20   2
    2   11-May        30   3
    3   11-May        40   4
    4   11-May        50   5
    5   12-May        10   6
    6   12-May        20   7
    7   12-May        30   8
    8   12-May        40   9
    9   12-May        50  10
    10  13-May        10  11
    11  13-May        20  12
    12  13-May        30  13
    13  13-May        40  14
    14  13-May        50  15
    15  14-May        10  16
    16  14-May        20  17
    17  14-May        30  18
    18  14-May        40  19
    19  14-May        50  20
    

    使用melt的另一种方式

    In [1943]: dff.melt('Distance')
    Out[1943]:
        Distance variable  value
    0         10   11-May      1
    1         20   11-May      2
    2         30   11-May      3
    3         40   11-May      4
    4         50   11-May      5
    5         10   12-May      6
    6         20   12-May      7
    7         30   12-May      8
    8         40   12-May      9
    9         50   12-May     10
    10        10   13-May     11
    11        20   13-May     12
    12        30   13-May     13
    13        40   13-May     14
    14        50   13-May     15
    15        10   14-May     16
    16        20   14-May     17
    17        30   14-May     18
    18        40   14-May     19
    19        50   14-May     20
    

    在哪里,

    In [1941]: dff
    Out[1941]:
       11-May  12-May  13-May  14-May  Distance
    0       1       6      11      16        10
    1       2       7      12      17        20
    2       3       8      13      18        30
    3       4       9      14      19        40
    4       5      10      15      20        50
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2018-04-12
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多