我得到了一个数据
df
A B
0 1 4
1 2 5
2 3 6为了进一步处理,对df进行如下重组将更为方便:
letters numbers
0 A 1
1 A 2
2 A 3
3 B 4
4 B 5
5 B 6我怎样才能做到这一点?
发布于 2017-04-26 10:12:47
将unstack与reset_index结合使用:
df = df.unstack().reset_index(level=1, drop=True).reset_index()
df.columns = ['letters','numbers']
print (df)
letters numbers
0 A 1
1 A 2
2 A 3
3 B 4
4 B 5
5 B 6或numpy.concatenate + numpy.repeat + DataFrame
a = np.concatenate(df.values)
b = np.repeat(df.columns,len(df.index))
df = pd.DataFrame({'letters':b, 'numbers':a})
print (df)
letters numbers
0 A 1
1 A 4
2 A 2
3 B 5
4 B 3
5 B 6发布于 2017-04-26 10:18:32
可能对melt来说最简单
In [36]: pd.melt(df, var_name="letters", value_name="numbers")
Out[36]:
letters numbers
0 A 1
1 A 2
2 A 3
3 B 4
4 B 5
5 B 6https://stackoverflow.com/questions/43631174
复制相似问题