繁体   English   中英

键在字典python中显示为nan

[英]Key is shown as nan in dictionary python

我正在尝试将具有 2 列的数据框转换为字典,其中第一列是键,第二列是其值都在一个字典中。

数据样本:

id           summary
135791059    blha blah blah
135791051    blah something blah

这是我试过的代码

map_of_values = pd.Series(f_dataframe.summary.values,index=f_dataframe.id).to_dict()

print(map_of_values)

输出是:

{'id': {'blah blah blah': nan, 'blah something blah}

我希望它是:

 {135791059:'blah blah blah blah',135791051:'blah something blah'}

我做错了什么? 而且我想迭代每个键值对,从中构建一个字符串。 这是正确的方法吗?

您可以简单地使用以下代码:

df.set_index('id').to_dict()['summary']

尝试了您的解决方案,如下所示。

工作正常。 无法重现错误。 也许您想检查您创建的数据框。

f_dataframe= {'id':[135791059,135791051],
        'summary':["blha blah blah", "blah something blah"]}
df = pd.DataFrame(f_dataframe)

map_of_values = df.set_index('id').to_dict()['summary']
print(map_of_values)
  • df.to_dict()方法用于根据orient参数将数据帧转换为系列或列表等数据类型的字典。
  • orient - 字符串值, ('dict', 'list', 'series', 'split', 'records', 'index')定义将 Columns(series) 转换为哪个 dtype。

前任。

import pandas as pd

my_dict = {'id':[135791059,135791051],'summary':["blha blah blah", "blah something blah"]}
df = pd.DataFrame(my_dict)
print(df)
records = df.to_dict('records')
data = {i['id'] :i['summary'] for i in records}
print(data)

开/关:

          id              summary
0  135791059       blha blah blah
1  135791051  blah something blah

{135791059: 'blha blah blah', 135791051: 'blah something blah'}

如果您已经将值用作列,则通常会发生此问题。 如果您有一个现有列并希望将某些“键”归因于值并创建一个新列,它将显示为NaN 您需要将现有列用作“键”,将所需的新列用作“值”(只需在字典中切换键和值的位置)。

例如:您预先存在的列是摘要,而您当前的字典是:

d = {135791059: 'blah blah blah', 135791051: 'blah something blah'}

但是,您需要更正它,例如:

d = {'blah blah blah': 135791059: , 'blah something blah': 135791051}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM