[英]If value from dictionary is in dataframe, return specific corresponding key
[英]Searching value in a dataframe and then putting corresponding value from dictionary in a new coloumn
我有一个带有一列名称的数据框,我还有另一个字典,该字典以名称作为键和与之相关的值。我想在数据框中搜索一个名称,并在字典中添加一个对应的新列。
my dictionary
fruits={'mango':1,'apple':2,'guava':0,'nut':1}
my dataframe
Fruit
mango
apple
guava
nut
预期产量
Fruit Frequency
mango 1
apple 2
guava 0
nut 1
数据框已经在那里,我只想将值与对应的元素映射
另外,如果我的字典中的键值对比我的原始数据帧多,如何将键和相应的值添加到数据帧。
假设我的数据框是
Fruit
mango
apple
现在我只想吃坚果而不是番石榴,因为它的值为0
所以预期的输出将是
Fruit Count
mango 1
apple 2
nut 1
在第一部分中,使用map
/ replace
df
Fruit
0 mango
1 apple
2 guava
3 nut
df['Frequency'] = df.Fruit.map(fruits)
df['Frequency'] = df.Fruit.replace(fruits) # alternative to map
df
Fruit Frequency
0 mango 1
1 apple 2
2 guava 0
3 nut 1
对于第二部分,您可以执行设置差异并将其与原始-
df
Fruit
mango
apple
i = df.Fruit
j = pd.Series(list(set(fruits.keys()).difference(i)))
df = pd.concat([i, j], ignore_index=True).to_frame('Fruit')
df
Fruit
0 mango
1 apple
2 nut
3 guava
要删除频率== 0的行,请使用布尔索引-
df
Fruit Frequency
0 mango 1
1 apple 2
2 guava 0
3 nut 1
df = df[df.Frequency.gt(0)]
df
Fruit Frequency
0 mango 1
1 apple 2
3 nut 1
或者,使用eval
/ query
。
df.query("Frequency > 0")
Fruit Frequency
0 mango 1
1 apple 2
3 nut 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.