假设我的Pandas DataFrame
包含以下内容:
Row Firstname Middlename Lastname
…
10 Roy G. Biv
11 Cnyder M. Uk
12 Pan T. One
…
如果["Lastname"]
中的单元格包含"Biv"
,我想将Python变量first_name =
设置为"Roy"
。
我已经离开熊猫一段时间了,我不确定正确的方法来实现这一目标。我已经研究了将df.iloc
/ df.loc
等与df.at/df.where
和str.contains
结合起来的方法,但不得不承认我在适当的方式上放弃了条件连同设置变量。
在(差,不正确的)伪代码中,我正在寻找:
first_name = df["Firstname"][np.where([df["Lastname"].str.contains("Biv") ...
答案 0 :(得分:1)
如果您只想要标量值,那么您可以访问结果数组中的第一个值并指定它:
firstname = df.loc[df['Lastname'].str.contains('Biv'), 'Firstname'][0]
请注意,实际上您应该检查它是否为空:
if len(df.loc[df['Lastname'].str.contains('Biv'), 'Firstname']) > 0:
firstname = df.loc[df['Lastname'].str.contains('Biv'), 'Firstname'][0]