【问题标题】:Convert a muti-valued dict into a pandas dataframe将多值 dict 转换为 pandas 数据框
【发布时间】:2021-08-07 21:11:24
【问题描述】:

我想将此 dict 转换为 pandas 数据框,其中每个键变成一列,列表中的值变成行:

我的字典:

{'Last updated': ['2021-05-18T15:24:19.000Z', '2021-05-18T15:24:19.000Z'],
 'Symbol': ['BTC', 'BNB', 'XRP', 'ADA', 'BUSD'],
 'Name': ['Bitcoin', 'Binance Coin', 'XRP', 'Cardano', 'Binance USD'],
 'Rank': [1, 3, 7, 4, 25],
}

my_dict 中的列表也可能有一些缺失值,它们应该在数据框中显示为 NaN。 这就是我目前尝试将其附加到我的数据框中的方式:

df = pd.DataFrame(columns = ['Last updated',
                                            'Symbol',
                                            'Name',
                                            'Rank',]
df = df.append(my_dict, ignore_index=True)
   
                    
#print(df)
df.to_excel(r'\walletframe.xlsx', index = False, header = True)

但我的输出只有一行包含所有值。

【问题讨论】:

  • 'Last updated' 键只有 2 个值,但其他每个有 5 个。那么您想如何处理“上次更新”的缺失 3 个值呢?在那里添加 NaN?
  • 其实,'Last updated' 也有 5 个值,但是我发现另一个只有 1 个值的键,如何将剩余的值添加为 NaN?
  • 检查这篇文章中接受的答案是否能解决您的问题:Filling dict with NA values to allow conversion to pandas dataframe
  • 是的,它现在可以完美运行了!非常感谢!

标签: python pandas dataframe dictionary append


【解决方案1】:

答案很简单,而不是使用

df = df.append(my_dict)

我用过

df = pd.DataFrame.from_dict(my_dict).T

这会转置数据框,因此它没有任何列缺失值。

感谢@Ank 帮助我找到了解决方案!

【讨论】:

  • 不客气。不要忘记接受您的答案,以便其他人可以从中受益:)
猜你喜欢
  • 2017-04-01
  • 2022-08-11
  • 2021-10-08
  • 2021-10-15
  • 2013-08-03
  • 1970-01-01
  • 2019-09-27
  • 2013-09-21
相关资源
最近更新 更多