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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用pandas DataFrame将字典打印到文件,但更改数据帧格式相关的知识,希望对你有一定的参考价值。

我有一个字典词典,我想打印成一个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,有没有办法改变它?

答案

您正在寻找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

以上是关于使用pandas DataFrame将字典打印到文件,但更改数据帧格式的主要内容,如果未能解决你的问题,请参考以下文章

Pandas使用to_dict函数将dataframe转化为字典(dict)格式数据并指定orientation参数生成不同形式的字典

JSON字典到Python中的Pandas DataFrame

pandas使用字典列表创建dataframe(list of dictionaries)pandas使用字典数据创建dataframe(dictionary)

pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format)

将 pandas.DataFrame 转换为 Python 中的字典列表

将 pandas Dataframe 列映射到字典值