为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数据框字典转换为数据框?

如何将数据框字典转换为数据框?

富国沪深 2021-09-28 13:45:17
我有一个包含多个键的字典,其中包含一个 Data Frame 值,如下所示,并且可以具有不同数量的索引。'key1':            colB    colA       str1       3    str2       4    str3       5'key2':            colB    colA       str2       3    str3       4    str5       5'key3':            colB    colA       str4       3    str5       4    str6       5我想知道如何创建一个看起来像的数据框        str1   str2   str3  ...   str 6key1     3       4      5    ..    NaNkey2    NaN      3      4    ..    NaN     key3    NaN     NaN    NaN   ..     5     缺少值时使用“NaN”。我已经通过使用 reset_index 来完成它,为每个数据帧创建熊猫系列,然后查找每行的匹配值以重新创建正确的数据帧,但我发现它非常慢而且根本不是最佳的。
查看完整描述

3 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您可以使用pandas.concat(). 有关文档,请参见此处Concat 文档

例如,假设您的字典被调用,my_dict您可以执行以下代码:

pd.concat(my_dict.values())

这假设您已经将 Pandas 作为 pd 导入。有关嵌入在 concat 中的选项,请参阅文档。

最后要注意的是,要将其转换为您想要的形式,您可以使用:

pd.unstack()

获取多索引值作为行标题。或者干脆pd.df.rename()

为了给你更多的建议,拥有生成原始数据帧的代码会很有帮助。


查看完整回答
反对 回复 2021-09-28
?
不负相思意

TA贡献1777条经验 获得超10个赞

我认为你需要的只是concat并unstack注意的d是你的dict


pd.concat(d).colB.unstack()

Out[663]: 

colA  str1  str2  str3  str4  str5  str6

k1     3.0   4.0   5.0   NaN   NaN   NaN

k2     NaN   3.0   4.0   NaN   5.0   NaN

k3     NaN   NaN   NaN   3.0   4.0   5.0



查看完整回答
反对 回复 2021-09-28
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

查看示例代码:


import pandas as pd

key1 = {'str1':3,'str2':4,'str3':5}

key2 = {'str2':3,'str3':4,'str5':5}

key3 = {'str4':3,'str5':4,'str6':5}


df1=pd.DataFrame.from_dict(key1, orient='index')

df1.rename(columns={0:'key1'},inplace=True)

df2=pd.DataFrame.from_dict(key2, orient='index')

df2.rename(columns={0:'key2'},inplace=True)

df3=pd.DataFrame.from_dict(key3, orient='index')

df3.rename(columns={0:'key3'},inplace=True)


df = pd.concat([df1,df2,df3],axis=1)

df_final=df.T

df_final.head()

代码非常简单,如果您需要更多解释,请告诉我。


查看完整回答
反对 回复 2021-09-28
  • 3 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信