【问题标题】:Reshaping a melted pandas dataframe重塑融化的熊猫数据框
【发布时间】:2017-08-23 06:35:27
【问题描述】:

我正在尝试从另一个 question 重塑融化的数据框。到目前为止,这就是我所拥有的:

    col1  variable  value
0    A     col2      1
1    B     col2      2
2    A     col2      3
3    B     col2      3
4    A     col3      5
5    B     col3      4
6    A     col3      6
7    B     col3      5

我正在尝试将其变为:

  col1 variable value1 value2
0    A     col2   1    3
1    A     col3   5    6 
2    B     col2   2    3
3    B     col3   4    5

为了理解这种重新排序背后的逻辑,这是原始数据框的样子,已排序:

  col1 variable  value
0    A     col2      1 \   1 (value1 = 1, value2 = 3)
2    A     col2      3 /
4    A     col3      5 \   2 (value1 = 5, value2 = 6)
6    A     col3      6 /
1    B     col2      2 \   3 (value1 = 2, value2 = 3)
3    B     col2      3 /
5    B     col3      4 \   4 (value1 = 4, value2 = 5)
7    B     col3      5 /

我想做的就是重塑。

我相信这与pivotpivot_table 有关,但我不确定...我该怎么做?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    一种使用groupby的方式

    In [589]: (df.groupby(['col1', 'variable']).value.apply(list)
                 .apply(pd.Series)
                 .rename(columns=lambda x: 'value{}'.format(x+1))
                 .reset_index())
    Out[589]:
      col1 variable  value1  value2
    0    A     col2       1       3
    1    A     col3       5       6
    2    B     col2       2       3
    3    B     col3       4       5
    

    【讨论】:

    • 我已经选择了df.groupby(['col1', 'variable'], as_index=False)['value'].apply(lambda x: pd.Series(x.values)),但这会很好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2018-06-21
    相关资源
    最近更新 更多