在python中将多列数据帧更改为单列而不丢失信息

在python中将多列数据帧更改为单列而不丢失信息,python,pandas,dimensions,Python,Pandas,Dimensions,我想在比较多个数据帧时看到单元格值的变化。这些数据帧是由JSON数据形成的,JSON数据形成了许多列表,我无法轻松更改此数据源。假设有10个数据帧,10行10列的标签相同。我想通过将每个数据帧转换为100行和1列来比较信息 对于3x3示例: import pandas as pd data = [{'a':1,'b':2,'c':3},{'a':10,'b':20,'c':30},{'a':100,'b':200,'c':300}] df = pd.DataFrame(data) df.inde

我想在比较多个数据帧时看到单元格值的变化。这些数据帧是由JSON数据形成的,JSON数据形成了许多列表,我无法轻松更改此数据源。假设有10个数据帧,10行10列的标签相同。我想通过将每个数据帧转换为100行和1列来比较信息

对于3x3示例:

import pandas as pd
data = [{'a':1,'b':2,'c':3},{'a':10,'b':20,'c':30},{'a':100,'b':200,'c':300}]
df = pd.DataFrame(data)
df.index = ['x','y','z']
给这张桌子

     a    b    c
x    1    2    3
y   10   20   30
z  100  200  300
但我想:

    col
xa  1
xb  2
xc  3
ya  10
yb  20
yc  30
za  100
zb  200
zc  300
这样我就可以添加许多列并比较值的变化

有人能给我建议一下如何使用熊猫吗? 如果需要第三个柱,也可以,即:

1  2  3
x  a  1
x  b  2
x  c  3
y  a  10
y  b  20
y  c  30
z  a  100
z  b  200
z  c  300

试试这样的

import pandas as pd
data = [{'a':1,'b':2,'c':3},{'a':10,'b':20,'c':30},{'a':100,'b':200,'c':300}]
df = pd.DataFrame(data)
df.index = ['x','y','z']

df_us = df.unstack().reset_index()
df_us.columns = [i for i in range(df_us.shape[1])]

df_us = df_us.sort_values(by=2)


试试这样的

import pandas as pd
data = [{'a':1,'b':2,'c':3},{'a':10,'b':20,'c':30},{'a':100,'b':200,'c':300}]
df = pd.DataFrame(data)
df.index = ['x','y','z']

df_us = df.unstack().reset_index()
df_us.columns = [i for i in range(df_us.shape[1])]

df_us = df_us.sort_values(by=2)

与一起使用,然后展平多索引以与地图一起索引:

对于3列:

df_us = df.stack().reset_index()
df_us.columns = [0,1,2]
print (df_us)
   0  1    2
0  x  a    1
1  x  b    2
2  x  c    3
3  y  a   10
4  y  b   20
5  y  c   30
6  z  a  100
7  z  b  200
8  z  c  300
与一起使用,然后展平多索引以与地图一起索引:

对于3列:

df_us = df.stack().reset_index()
df_us.columns = [0,1,2]
print (df_us)
   0  1    2
0  x  a    1
1  x  b    2
2  x  c    3
3  y  a   10
4  y  b   20
5  y  c   30
6  z  a  100
7  z  b  200
8  z  c  300
是的,.stack命令正是我想要的,谢谢。是的,.stack命令正是我想要的,谢谢。