为什么我不能取消Pivot(融化)这个panda数据帧(python)

2024-06-16 13:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个我制作的熊猫数据框,我按照我想要的方式旋转它。现在,我想用新形成的数据框取消填充所有内容,以获取位置数据(行和列),并查看是哪个。例如,我希望第一行(在与位置数据未绑定的新数据框中)在“行”下有1,在“a”下有1,并将1作为值(下面的示例)。有人能想出如何取消PIVOT以获取行和列值吗?我试过使用pd.melt,但似乎不起作用(没什么区别)。请尽快回复。谢谢下面是制作数据透视框的代码

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


Tags: columnsthe数据示例内容dataframe方式row
1条回答
网友
1楼 · 发布于 2024-06-16 13:22:30

^{}^{}一起使用:

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

相关问题 更多 >