我对我的数据框有疑问。具体来说,在一列中,对于每一行,我都有一个发言者和演讲清单。现在,我想根据扬声器是否是我正在寻找的扬声器来选择一个语音,这在另一个专栏中有所提及。因此,一列提供了我要查找的姓氏,另一列提供了所有发言者(名字和姓氏)及其语音的列表,我想创建一个新列,其中此语音存储在相应的行中。
所以我的初始数据集如下所示:
ticker year quarter exel_lname jobposition speechmanager
xx 2009 1 Angle CEO "Thank you"
xx 2009 1 Barth CFO "It is"
xx 2009 2 Angle CEO "I am surprised"
xx 2009 2 Barth CFO "So am I"
yy 2008 3 Cruz CEO "Hello"
yy 2008 3 Dolm CFO "Nice to meet you"
例如,对于第一行,我想检查每个键值对是否第一个列表条目包含姓氏,如果没有继续,如果是,则取出语音部分(即第二个列表条目)并将其存储在新的柱。因此,我想要以下数据集(我在这里隐藏了初始列语句,但它仍然应该被包含,所以我不想替换它,只需创建一个新列。)
ExcelWorksheet
有人可以帮我解决如何在Python 3中解决这个问题吗?
谢谢!! 朱莉娅
答案 0 :(得分:2)
这可能是通过编写函数然后逐行应用来实现的:
def get_speech(row):
matches = list(filter(lambda x: x[0].endswith(row['exel_lname']), row['speech']))
if len(matches) > 0:
return matches[0][1]
return ''
df['speechmanager'] = df.apply(get_speech, axis=1)