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')