为什么我不能解开(融化)这个熊猫数据框架(python)

我有一个熊猫数据框架,我做了一个数据框架,我把它按照我想要的方式进行了旋转。现在,我想把所有的东西都解开,以获得新形成的数据框架的位置数据(行和列),并查看其中。例如,我想让第一行(在新的数据框架中,与位置数据解除枢轴关系)在 “行 “下有1,在 “a “下有1,并以1为值(如下例)。谁能告诉我如何通过解ivot来获得行和列的值?我试过用pd.melt,但似乎没有用(没有什么区别)。请尽快回复。谢谢 直接下面是制作pivoted数据框的代码。

import pandas as pd
row = [1, 2, 3, 4, 5]
df67 = {'row':row,}
df67 = pd.DataFrame(df67,columns=['row'])
df67['a'] = [1, 2, 3, 4, 5]
df67['b'] =[13, 18, 5, 10, 6]
#df67 (dataframe before pivot)
df68 = df67.pivot(index='row', columns = 'a')
#df68 (dataframe after pivot)

What I want the result to be for the first line:
row | a | value
1 | 1 | 13

解决方案:

使用 DataFrame.stackDataFrame.reset_index:

df = df68.stack().reset_index()
print (df)
   row  a     b
0    1  1  13.0
1    2  2  18.0
2    3  3   5.0
3    4  4  10.0
4    5  5   6.0

编辑:

为避免删除缺失的数值,请使用 dropna=False 参数。

df = df68.stack(dropna=False).reset_index()
print (df)
    row  a     b
0     1  1  13.0
1     1  2   NaN
2     1  3   NaN
3     1  4   NaN
4     1  5   NaN
5     2  1   NaN
6     2  2  18.0
7     2  3   NaN
8     2  4   NaN
9     2  5   NaN
10    3  1   NaN
11    3  2   NaN
12    3  3   5.0
13    3  4   NaN
14    3  5   NaN
15    4  1   NaN
16    4  2   NaN
17    4  3   NaN
18    4  4  10.0
19    4  5   NaN
20    5  1   NaN
21    5  2   NaN
22    5  3   NaN
23    5  4   NaN
24    5  5   6.0

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何用data.table代替 aggregate?

2022-9-8 17:58:22

未分类

如何实现html多选项复选框的selectAll功能?

2022-9-8 18:12:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索