我当前的过程是使用一个循环来填充两个列表,然后将它们转换为一个数据帧,然后将其转换为一个字典,以便在更大的数据帧中使用
newdictionarydf = pd.DataFrame({'Col1': a_list, 'Col2': b_list})
mydictionary = newdictionarydf.to_dict(orient='dict')
输出为:
{'Col1': {0: 'A', 1: 'B', 2: 'C'},
'Col2': {0: 118, 1: 120, 2: 104}}
但是,我现在尝试使用map函数在现有数据帧中构建一个新列,但在新列中接收NaN值。我已经确保我映射的列具有相同的名称(Col1),以防有所帮助,但运气不佳
bigdf['Col3'] = bigdf['Col1'].map(mydictionary)
# Output
Col1 Col3
0 A NaN
1 B NaN
2 C NaN
我想要的输出是:
# Output
Col1 Col3
0 A 118
1 B 120
2 C 104
我相信这很可能是我犯的一个简单的错误。我还尝试将Col1设置为创建数据帧和将其转换为字典之间的索引,但这没有帮助。谢谢
不确定为什么要先将列表转换为数据帧,然后再将数据帧转换为字典,您可以使用类似的方法来创建字典
如果您在代码的其余部分使用它,您将得到预期的结果
使用:
这将产生:
然后:
创建:
相关问题 更多 >
编程相关推荐