在python中将多列数据帧更改为单列而不丢失信息
我想在比较多个数据帧时看到单元格值的变化。这些数据帧是由JSON数据形成的,JSON数据形成了许多列表,我无法轻松更改此数据源。假设有10个数据帧,10行10列的标签相同。我想通过将每个数据帧转换为100行和1列来比较信息 对于3x3示例:在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
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命令正是我想要的,谢谢。