首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从DF列向字典中插入值- Pandas (Python)

从DF列向字典中插入值- Pandas (Python)
EN

Stack Overflow用户
提问于 2018-06-26 05:12:09
回答 1查看 1.2K关注 0票数 1

我有一个值列表,我正在尝试将其与pandas df的列相匹配,然后想要创建一个字典,该字典将列表值作为关键字,然后将数据框中不同列的字典值作为关键字。

下面是我的清单:

代码语言:javascript
复制
sample_list = [101,105,112]

我的数据框:

代码语言:javascript
复制
sample_df = pd.DataFrame([[101, "NJ"], [105, "CA"],[111, "MO"], [101, "NJ"], [112, "NB"], [101, "NJ"], [105, "CA"]], \
                         columns=["Col1", "Col2"])

看起来像这样,

代码语言:javascript
复制
    Col1    Col2
0   101     NJ
1   105     CA
2   111     MO
3   101     NJ
4   112     NB
5   101     NJ
6   105     CA

现在,我正在尝试迭代列表值(这是我的new_dict的键),并用Col1匹配它们,如果它们匹配,我想提取Col2值作为我的字典值。到目前为止,我的代码就是这样的:

代码语言:javascript
复制
new_dict = {}
for value in sample_list:
    for i in sample_df['Col1']:
        if value == i:
            new_dict[value] = [i for i in sample_df['Col2']]

然而,我的new_dict看起来像这样,

代码语言:javascript
复制
{101: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA'],
 105: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA'],
 112: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA']}

我需要这样的输出,

代码语言:javascript
复制
{101: ['NJ'],
 105: ['CA'],
 112: ['NB']}

我怎样才能得到我想要的输出?任何帮助都会很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-26 05:20:51

这样就可以了:

代码语言:javascript
复制
new_dict = {i: [sample_df[sample_df['Col1']==i]['Col2'].values[0]] for i in sample_list}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51031857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档