我正在 Python/Pandas 中寻找将二维表反转为一维列表的技巧。
我通常利用 Excel 函数来执行此操作,但我相信有一种智能的 Python 方法来执行此操作。
步骤
Excel方式的更多细节: http://www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html
最佳答案
此类操作也可以使用 pd.melt
完成,它取消了 DataFrame 的透视。
如果 DataFrame df
看起来像这样:
row labels Tue Wed Thu Sat Sun Fri Mon
0 Apple 21 39 24 27 37 46 42
1 Banana 32 50 48 35 21 27 22
2 Pear 37 20 45 45 31 50 32
然后我们选择 row_labels
列作为我们的 id_var
,其余列作为我们的值 (value_vars
)。我们甚至可以同时为列选择新名称:
>>> pd.melt(df,
id_vars='row labels',
value_vars=list(df.columns[1:]), # list of days of the week
var_name='Column',
value_name='Sum of Value')
row labels Column Sum of Value
0 Apple Tue 21
1 Banana Tue 32
2 Pear Tue 37
3 Apple Wed 39
4 Banana Wed 50
5 Pear Wed 20
...
value_vars
堆叠在一起:如果列值需要按特定顺序排列,则需要在熔化后对列进行排序。
关于python - 如何使用 Pandas 将二维表 (DataFrame) 反转为一维列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27764378/