我想一个新的列添加到基于比已有的列短名单上现有的数据帧。
列表中的值是基于字典,其中返回的值每次它与关键字匹配。
我用下面的方法来获取值:
attending_dict ={ 'Jack' :'Yes',
'John':'No',
'Paul':'Maybe'}
List_Attended =[]
for i, row in df.iterrows():
text = row['Invitations']
make_list = text.split()
for keys, values in attending_dict.items():
if keys in make_list:
List_Attended.append(values)
List_Attended = [Yes,No,Maybe]
到目前为止,我已经尝试过使用的.loc,以填补缺失值,但它产生此错误信息:
new_attending = pd.Series(List_Attended)
df.loc['Attending'] = new_attending.values
raise ValueError("cannot set a row with "
ValueError: cannot set a row with mismatched columns
这是我想在我的数据帧的内容:
Invitations Attending
Jack Muller Yes
John Doe No
Ryan Paul NaN
Paul Doe Maybe
这将是巨大的,如果有人可以解释如何解决这个问题。
采用:
attending_dict ={ 'Jack' :'Yes',
'John':'No',
'Paul':'Maybe'}
df['Attending']=df.Invitations.str.split(" ").str[0].map(attending_dict)
print(df)
Invitations Attending
0 Jack Muller Yes
1 John Doe No
2 Ryan Paul NaN
3 Paul Doe Maybe