如何向 df 添加新列,其中包含 True 或 False,具体取决于字典?
import pandas as pd
my_dict={
'Group1':('Item1','Item3'),
'Group2':('Item2','Item3','Item4','Item5'),
'Group3':('Item1')
}
df=pd.DataFrame({
'Item':['Item1','Item2','Item3','Item4'],
'Group':['Group1','Group1','Group2','Group3']
})
我想要的结果:
df=pd.DataFrame({
'Item':['Item1','Item2','Item3','Item4'],
'Group':['Group1','Group1','Group2','Group3'],
'New_col':['True','False','True','False']
})
我试过:
df['New_col']=df['Item'].str.startswith(df['Group'].apply(lambda x: my_dict.get(x)))
但我得到了错误:
类型错误:需要字符串或元组,而不是系列
我认为最有效的方法是在 python 中重写字典以形成集合:
直接映射:
反向映射:
输出: