Python 在不编写执行该操作的函数的情况下对序列执行链操作

Python 在不编写执行该操作的函数的情况下对序列执行链操作,python,pandas,Python,Pandas,我有一个像 姓名|年龄 ------+------ “约翰”| 20 “能源部”| 30 对于本例,我想首先将名称转换为大写字母,然后得到最后一个字母。我可以像这样编写自己的函数 def最后一个字母(名称): name=name.upper() 返回名称[-1] 并与apply df[“名称]。应用(最后一个字母) #N #E 是否有一种方法可以调用每个元素上的操作.upper和[-1],而不必像上面那样编写函数,例如 df[“name”]。应用_操作([“.upper”,“[-1]”)

我有一个像

姓名|年龄
------+------
“约翰”| 20
“能源部”| 30
对于本例,我想首先将名称转换为大写字母,然后得到最后一个字母。我可以像这样编写自己的函数

def最后一个字母(名称):
name=name.upper()
返回名称[-1]
并与
apply

df[“名称]。应用(最后一个字母)
#N
#E
是否有一种方法可以调用每个元素上的操作
.upper
[-1]
,而不必像上面那样编写函数,例如

df[“name”]。应用_操作([“.upper”,“[-1]”)
#N
#E

您可以使用匿名函数和
apply()
方法:

df['names'].apply(lambda x:x.upper()[-1])

如@sammywemmy所述,使用:

df['names'].str.upper().str[-1]

您也可以使用
Series()
方法和列表理解来完成此操作:

pd.Series([x.upper()[-1] for x in df['names']],name='names')

df.names.str.upper().str[-1]
?是的。。。那真是太尴尬了