如何填充数据框空值时,列表添加到新列

问题描述 投票:0回答:1

我想一个新的列添加到基于比已有的列短名单上现有的数据帧。

列表中的值是基于字典,其中返回的值每次它与关键字匹配。

我用下面的方法来获取值:

 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

这将是巨大的,如果有人可以解释如何解决这个问题。

python-3.x pandas list dataframe nan
1个回答
2
投票

采用:

attending_dict ={ 'Jack' :'Yes',
               'John':'No',
               'Paul':'Maybe'}  

使用series.map()

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
© www.soinside.com 2019 - 2024. All rights reserved.