如何将 pandas 数据框转换为没有列标题的字典?

bla*_*lah 3 python dictionary flatten dataframe pandas

我当前的 df:

\n\n
\n\n
   header1    header2  \n   Siam       Thailand      \n   Indonesie  Indonesia       \n   Arabie     Yemen       \n   Ceylon     Sri Lanka      \n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我的 df 的标头是“header1”和“header2”。这些值是这两个标题下的所有内容。

\n\n

我想将这个 df 转换为平面字典,其中字典键是 header1 的值,字典值是 header2 的值,如下所示:

\n\n

期望的输出:

\n\n
{'Siam': 'Thailand', 'Indonesi\xc3\xab': 'Indonesia', 'Arabi\xc3\xab': 'Yemen', 'Ceylon': 'Sri Lanka'}\n
Run Code Online (Sandbox Code Playgroud)\n\n

电流输出:

\n\n
{'header2':{'Siam': 'Thailand', 'Indonesie': 'Indonesia', 'Arabie': 'Yemen', 'Ceylon': 'Sri Lanka'}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的代码:

\n\n
df.to_dict()\n
Run Code Online (Sandbox Code Playgroud)\n

Qua*_*ang 5

这只是:

{a:b for a,b in zip(df['header1'], df['header2'])}
Run Code Online (Sandbox Code Playgroud)

或者如果您坚持pandas解决方案:

df.set_index('header1')['header2'].to_dict()
Run Code Online (Sandbox Code Playgroud)

输出:

{'Siam': 'Thailand',
 'Indonesie': 'Indonesia',
 'Arabie': 'Yemen',
 'Ceylon': 'Sri Lanka'}
Run Code Online (Sandbox Code Playgroud)