将数据转换为字典

2024-06-16 10:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要转换以下格式的df:

d = {
    'A': ['a1', 'a2', 'a3', 'a4', 'a5'],
    'B': ['b1', 'b2', 'b3', 'b4', 'b5'],
    'C': ['c1', 'c2', 'c3', 'c4', 'c5'],
    'D': ['d1', 'd2', 'd3', 'd4', 'd5'],
    'E': ['e1', 'e2', 'e3', 'e4', 'e5'],
    'F': ['f1', 'f2', 'f3', 'f4', 'f5'],
    'G': ['g1', 'g2', 'g3', 'g4', 'g5'],
    'H': ['h1', 'h2', 'h3', 'h4', 'h5'],
}

df = pd.DataFrame(d)
df
    A   B   C   D   E   F   H
0   a1  b1  c1  d1  g1  f1  h1
1   a2  b2  c2  d2  g2  f2  h2
2   a3  b3  c3  d3  g3  f3  h3
3   a4  b4  c4  d4  g4  f4  h4
4   a5  b5  c5  d5  g5  f5  h5

以以下格式创建字典:

out = {
    'a1': {'B':'b1', 'C':'c1', 'D':'d1', 'E':'e1', 'F':'f1', 'G':'g1', 'H':'g1'},
    'a2': {'B':'b2', 'C':'c2', 'D':'d2', 'E':'e2', 'F':'f2', 'G':'g2', 'H':'g2'},
    'a3': {'B':'b3', 'C':'c3', 'D':'d3', 'E':'e3', 'F':'f3', 'G':'g3', 'H':'g3'},
    'a4': {'B':'b4', 'C':'c4', 'D':'d4', 'E':'e4', 'F':'f4', 'G':'g4', 'H':'g4'},
    'a5': {'B':'b5', 'C':'c5', 'D':'d5', 'E':'e5', 'F':'f5', 'G':'g5', 'H':'g5'}
}

有人能帮忙吗。我尝试过以下方法:

df.to_dict(orient='records')

Tags: a2dfa1b2a3b1a4b3
2条回答

将索引设置为A列,并使用orient='index'转换为字典

df.set_index('A').to_dict('index')

输出

{'a1': {'B': 'b1', 'C': 'c1', 'D': 'd1', 'E': 'g1', 'F': 'f1', 'H': 'h1'},
 'a2': {'B': 'b2', 'C': 'c2', 'D': 'd2', 'E': 'g2', 'F': 'f2', 'H': 'h2'},
 'a3': {'B': 'b3', 'C': 'c3', 'D': 'd3', 'E': 'g3', 'F': 'f3', 'H': 'h3'},
 'a4': {'B': 'b4', 'C': 'c4', 'D': 'd4', 'E': 'g4', 'F': 'f4', 'H': 'h4'},
 'a5': {'B': 'b5', 'C': 'c5', 'D': 'd5', 'E': 'g5', 'F': 'f5', 'H': 'h5'}}

您还可以使用:

df.set_index('A').T.to_dict()

相关问题 更多 >