使用pandas DataFrame将字典打印到文件,但更改数据帧格式

问题描述 投票:0回答:1

我有一个字典词典,我想打印成一个csv文件。我发现使用pandas.DataFrame执行此操作的方法:

import pandas as pd

dict = {'foo': {'A':'a', 'B':'b'}, 'bar': {'C':'c', 'D':'d'}}
df = pd.DataFrame(dict)

#df.to_csv(path_or_buf = r"results.txt", mode='w')

这给了我一个格式化的结果,如下所示:

   bar  foo
A  NaN    a
B  NaN    b
C    c  NaN
D    d  NaN

我期望(并且希望有)一个看起来像的DataFrame:

foo  A    a
foo  B    b
bar  C    c
bar  D    d

我是新手操纵数据帧,所以我不知道如何更改格式 - 我会在DataFrame参数中进行吗?或者,一旦字典已经是df,有没有办法改变它?

python-3.x pandas dataframe format
1个回答
1
投票

您正在寻找stack

df.stack()
Out[91]: 
A  foo    a
B  foo    b
C  bar    c
D  bar    d
dtype: object

那是多指数

dict = {'foo': {'A':'a', 'B':'b'}, 'bar': {'A':'a','C':'c', 'D':'d'}}
df = pd.DataFrame(dict)
df.stack()
Out[93]: 
A  bar    a
   foo    a
B  foo    b
C  bar    c
D  bar    d
dtype: object
df.stack().reset_index()
Out[94]: 
  level_0 level_1  0
0       A     bar  a
1       A     foo  a
2       B     foo  b
3       C     bar  c
4       D     bar  d
© www.soinside.com 2019 - 2024. All rights reserved.