将dict转换为pandas数据帧,将键保持在一行中



我有一个这样的dict:

x = { 'A': [3.4, 4.2, 5.6]
'B': [5.6, 7.8, 2.3]
etc....
}

我想创建一个熊猫数据帧,看起来像这样:

'POINT'   'X'   'Y'   'Z'
A      3.4   4.2   5.6
B      5.6   7.8   2.3
etc...

df=pd.DataFrame(list(x.items(((…

生成一个2列数据帧,键在第0列,值作为列表在第1列。

df=pd.DataFrame.from_dict(x(

生成一个基本正确的数据帧,但POINT没有列,据我所知,它使用该列作为索引。有没有一种简单的方法可以通过dict转换来实现这一点?(我知道我可以通过dict循环并填充数据帧单元格来达到目的(很抱歉,如果这是一个愚蠢的问题,我对熊猫几乎没有经验。。。

您可以使用:

df = pd.DataFrame(x).T.reset_index()
df.columns = ['POINT', 'X', 'Y',  'Z']

结果:

print(df)
POINT    X    Y    Z
0     A  3.4  4.2  5.6
1     B  5.6  7.8  2.3

IIUC,您可以尝试:

x = { 'A': [3.4, 4.2, 5.6],
'B': [5.6, 7.8, 2.3]
}
df = pd.DataFrame(x).T.rename(columns= {0: 'X', 1: 'Y', 2: 'Z'})

输出:

X    Y    Z
A  3.4  4.2  5.6
B  5.6  7.8  2.3

您也可以尝试:

pd.DataFrame.from_dict(x, 'index', columns=["X", "Y", "Z"])

输出:

X    Y    Z
A  3.4  4.2  5.6
B  5.6  7.8  2.3
df_data = [[key] + values for key, values in data_dict.items()]
df = pd.DataFrame(df_data, columns=["POINT", "X", "Y", "Z"])

您可以使用它来添加POINT列:

points = x.keys()
df['POINT']=points

或df.reset_index((

最新更新