python - 从 DF 列将值插入字典 - Pandas (Python)

标签 python python-3.x list dictionary dataframe

我有一个值列表,我试图将其与 pandas df 的列匹配,然后想创建一个字典,它将列表值作为键,然后将字典值从与数据框不同的列。

我的列表是这样的:

sample_list = [101,105,112]

我的数据框:

sample_df = pd.DataFrame([[101, "NJ"], [105, "CA"],[111, "MO"], [101, "NJ"], [112, "NB"], [101, "NJ"], [105, "CA"]], \
                         columns=["Col1", "Col2"])

看起来像这样,

    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 值作为我的字典值。到目前为止,这就是我的代码,

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 看起来是这样的,

{101: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA'],
 105: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA'],
 112: ['NJ', 'CA', 'MO', 'NJ', 'NB', 'NJ', 'CA']}

我需要这样的输出,

{101: ['NJ'],
 105: ['CA'],
 112: ['NB']}

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

最佳答案

这样做就可以了:

new_dict = {i: [sample_df[sample_df['Col1']==i]['Col2'].values[0]] for i in sample_list}

关于python - 从 DF 列将值插入字典 - Pandas (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031857/

相关文章:

python - 无法从 VSCode 外部在我的 macbook pro 中使用 Python3 numpy(或 matplotlib 等)

python 2.7 : log displayed twice when `logging` module is used in two python scripts

python - 如何使用 pandas 和 python 来评估用户位于多少个地理框内?

python - 发生错误时运行函数而不尝试

python - 多余的位置参数,解包参数列表或元组,以及扩展的可迭代解包

python : Cost of forming list with comprehension vs standalone function

r - 如何按字母顺序对列表进行排序?

python - 使用变量python脚本打开文件

python - ffmpeg 恢复为默认字幕字体

python - 用for循环反转字符串句子?