将字典值与datafram中列表中的值匹配

2024-09-15 17:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有列的数据框,相关的是ID和name。我也有一本字典,里面有ID:name。我需要匹配ID并将名称输出到df['name']列。我遇到的问题是,在dataframe中,有些ID每行有多个ID。如何分别遍历每个ID。你知道吗

下面是我的代码。如果只有一个ID,它就可以工作。如果有多个ID,我不知道如何让它工作。我猜它会被认为是一个副列表?你知道吗

for id_col, name_col in dic1.iteritems():
    df.loc[(df['ID Value'] == id_col), 'name'] = name_col

数据帧示例:

df_test = pd.DataFrame( {'ID Value' : [130, (12,45,100), 208], 'name' : ['','','']})

测向测试>;>

   ID Value           name
0  130
1  (12, 45, 100)
2  208

第1部分:

 45 Joe 
130 Andy
208 Mary

我想要的结果是:

    ID Value       name
 0  130            Andy
 1  (12, 45, 100)  Joe
 2  208            Mary

Tags: 数据代码namegt名称iddataframedf
4条回答

你可以在散列图上循环,然后做任何你想做的事

Iterator<Entry<String,Object>> iterator = hashMap.entrySet().iterator();

        while(iterator.hasNext()){

            set = iterator.next();
            Object val = set.getValue();

        }

看看Convert a Map to a POJO

Jackson可以在android项目中使用BeanUtils被告知要快得多,但我在安卓上没有这方面的经验。它也很有可能被使用

步骤1:向对象(实体类)添加值。 步骤2:将对象作为值wrt键添加到Hashmap。 第3步:从HasMap中获取对象,并使用迭代器迭代这些值

Iterator iterator = meMap.keySet().iterator();
while(iterator.hasNext()) {
String key=(String)iterator.next();
String value=(String)meMap.get(key);
}

可以自由地提出任何疑问

假设这是你的Hashmap

Map <String, Object> hashMap = new HashMap<String,Object>();

这是你想要从hashmap中赋值的类对象

List<UserdefinedClass> myObject = new ArrayList<UserdefinedClass>();

现在,您需要遍历hashmap并获取值,键入cast并将其存储在myObject列表中

 Iterator it = hashMap.entrySet().iterator();
 while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        myObject.add((UserdefinedClass)pair.getValue());
    } 

相关问题 更多 >