从DataFrame创建字典?

时间:2019-10-04 07:49:10

标签: python dataframe

我想从python中的数据框创建字典。 在此数据框中,第一列包含所有键,而另一列包含该键的多个值。

DATAKEY      DATAKEYVALUE
name         mayank,deepak,naveen,rajni
empid        1,2,3,4
city         delhi,mumbai,pune,noida

我尝试使用此代码先将其转换为简单的数据帧,但所有值均未按行分开:

columnnames=finaldata['DATAKEY']
collist=list(columnnames)
dfObj = pd.DataFrame(columns=collist)
collen=len(finaldata['DATAKEY'])
for i in range(collen):
    colname=collist[i]
    keyvalue=finaldata.DATAKEYVALUE[i]
    valuelist2=keyvalue.split(",")
    dfObj = dfObj.append({colname: valuelist2}, ignore_index=True)

1 个答案:

答案 0 :(得分:0)

您应该修改标题问题,这很容易引起误解,因为熊猫数据框本身就是“种类”字典,这就是为什么您第一个评论与.to_dict()熊猫的内置方法有关。 / p>

您实际上想要做的是逐行遍历熊猫数据框,并为每一行从第一列生成一个词典密钥,并从第二列生成一个词典列表。

为此,您将必须使用:

  • 空字典:dict()
  • 用于遍历数据帧行的方法:dataframe.iterrows()
  • 一种方法,用于拆分由分隔符分隔的单个值字符串,如您建议的str.split()方法:

使用所有这些工具,您所要做的就是:

split()

请注意,这将生成一个字典,其值是字符串列表。如果“ DATAKEYVALUE”列的内容不是单引号字符串,将无法正常工作。

还请注意,如果数据帧很大,这可能不是最有效的解决方案。