python - 使用 python 字典中的值的新 pandas 数据框列

标签 python dictionary pandas indexing dataframe

我有一个 pandas 数据框,例如:

colA      colB 
code1      num
code2      num
code3      num
code4      num
code5      num

我还有一个python字典,例如:

py_dict = {'code1': [val1, val2, val3, val4, val5], 'code2': [val1, val2, val3, val4, val5], 'code3': [val1, val2, val3, val4, val5], 'code4': [val1, val2, val3, val4, val5], 'code5': [val1, val2, val3, val4, val5]}

我想做的是在 pandas 数据框中创建一个新列,称之为 colC,它使用 colA 中的键来匹配 py_dict 中相应的键/列表,并返回第三个列表值 val3。我已经尝试过 dataframe.from_dict() 和 dataframe.update() 但不确定如何正确索引字典。

最佳答案

首先创建一个新的字典,只包含你想要从每个列表中得到的值:

new_dict = {k: v[2] for k, v in py_dict.iteritems()}

然后就可以使用Series.map

df['new_col'] = df.colA.map(new_dict)

关于python - 使用 python 字典中的值的新 pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26153541/

相关文章:

python - 如何根据合并列拆分为多行

python - 如何为带有彩色文本的终端运行 pexpect 脚本

python - 获取 AttributeError : 'module' object has no attribute 'DEFAULT_MAX_REDIRECTS' when running Google Sheets API quickstart

Python-Lex-Yacc 符号无法访问

ios - 我应该使用什么技术来组织这个日期列表?

python - pandas dataframe.to_html() 上的分页

python - 使用 URL 中的字段在 Django Rest Framework 的 ListAPIView 中进行过滤

python - 按升序对返回的字典中的值列表进行排序-Python

c++ - 在嵌套 map 上使用 lower_bound

重叠时间的 Pandas 图时间序列