dataframe:当另一列中的值位于dict

时间:2017-10-13 13:11:46

标签: python pandas dictionary

我的数据框的第一个看法:

temp = df{'assigned to':('user1','user2','user3'),'model':('ipad air 2','galaxy a5', 'ipad air'), 'type':''}

'assigned to' 'model'    'type'
user1         ipad air 2
user2         galaxy a5
user3         ipad air

上面的输入是给定数据的片段,我只添加了列类型。我还使用了一本词典:

dictMobile{'galaxy a5':'samsung galaxy a5','galaxy a6':'samsung galaxy a7'}

使用这个词典,我可以替换temp [' model']中的值,这样命名就行了。现在我还要添加列类型' mobile'如果模型出现在dictMobile或平板电脑中如果它没有出现。

到目前为止我想出的最好的是

if temp['model'] in dictMobile:
    temp['Type'] = 'mobile'
else:
    temp['Type'] = 'tablet'

但这会让我误以为错误' TypeError:' Series'对象是可变的,因此它们不能被散列'。

之后的结果是:

'assigned to' 'model'    'type'
user1         ipad air 2 tablet
user2         galaxy a5  mobile
user3         ipad air   tablet

1 个答案:

答案 0 :(得分:1)

使用带有numpy.where条件的isin来检查keys的{​​{1}}:

dict