【发布时间】:2020-05-19 18:02:15
【问题描述】:
字典-
theDict = {'Apple': '50',
'Mango': '70',
'Banana': '20'}
数据框 -
df=pd.DataFrame({'id':[1,2,3],
'var1':['Apple','Papaya','Banana'],
'var2':['Papaya','Mango','Apple'],
'var3':['Banana','Guava','Grapes']})
如果字典项(例如 Apple)出现在数据框行中,则输出应该是值为 50 的新列。
如果连续有两个水果,例如芒果和苹果,那么该行前面的输出应该是 50 + 70
输出样本 -
df=pd.DataFrame({'id':[1,2,3],
'var1':['Apple','Papaya','Banana'],
'var2':['Papaya','Mango','Apple'],
'var3':['Banana','Guava','Grapes']
'Output_var':['50','50+70','20']})
如果值存在或不存在,则创建一个值为 True 或 False 的数据框
m = df.isin(theDict)
print (m)
现在不确定,如何循环数据框并创建一个新列。
欢迎任何其他方法!
我正在考虑将数据帧转换为 numpy 数组并使用循环,但我的数据集非常大,不确定这是否是最佳方式
【问题讨论】:
-
当你说输出应该是50 + 70时,你指的是那个表达式的值吗?
-
@AMC 我也对此感到困惑,但他可能有他只想加入的字符串,他总是可以评估或使用 Erfan 和我自己的解决方案
-
对不起,我有想要加入的字符串,值并不总是数字
标签: python pandas numpy dictionary