Python 在不删除行的情况下堆叠数据帧

Python 在不删除行的情况下堆叠数据帧,python,pandas,Python,Pandas,目前,我有这样一个数据帧: 0 0 0 3 0 0 0 7 8 9 1 0 0 4 5 2 4 0 我的堆栈代码: dt = dataset.iloc[:,0:7].stack().sort_index(level=1).reset_index(level=0, drop=True).to_frame() dt['variable'] = pandas.Categorical(dt.index).codes+1 dt.rename(columns={0:index_column_name},

目前,我有这样一个数据帧:

0 0 0 3 0 0
0 7 8 9 1 0
0 4 5 2 4 0
我的堆栈代码:

dt = dataset.iloc[:,0:7].stack().sort_index(level=1).reset_index(level=0, drop=True).to_frame()
dt['variable'] = pandas.Categorical(dt.index).codes+1
dt.rename(columns={0:index_column_name}, inplace=True)
dt.set_index(index_column_name, inplace=True)
dt['variable'] = numpy.sort(dt['variable'])
但是,当我堆叠第一行时,它会掉落第一行,我想保留标题/第一行,我该如何实现这一点

本质上,我正在丢失第一行(也称为列标题)的数据,我希望保留它

期望输出:

value,variable
0 1
0 1
0 1
0 2
7 2
4 2
0 3
8 3
5 3
3 4
9 4
2 4
0 5
1 5
4 5
0 6
0 6
0 6
电流输出:

value,variable
0 1
0 1
7 2
4 2
8 3
5 3
9 4
2 4
1 5
4 5
0 6
0 6

为什么不使用@WeNYoBen提到的
df.melt

print(df)

   1  2  3  4  5  6
0  0  0  0  3  0  0
1  0  7  8  9  1  0
2  0  4  5  2  4  0

print(df.melt())

   variable  value
0         1      0
1         1      0
2         1      0
3         2      0
4         2      7
5         2      4
6         3      0
7         3      8
8         3      5
9         4      3
10        4      9
11        4      2
12        5      0
13        5      1
14        5      4
15        6      0
16        6      0
17        6      0

你的期望是什么output@TylerWayne我相信我们可以给你一个答案,但你需要为我们做更多的解释,解释你想要什么。我已经在我的帖子中添加了更多信息。这是df.melt()?还是
df.values.flatte('F')