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]
?是的。。。那真是太尴尬了