2024-04-27 20:35:44 发布
网友
我正在探索泰坦尼克号的数据集,想创建一个名称相似的列。例如,任何包含“Charles”的名称都将显示为“ch”,因为我想在以后使用这些名称进行分组。 我使用以下代码创建了一个函数:
def cont(Name): for a in Name: if a.str.contains('Charles'): return('Ch')
然后用这个:
错误:'str' object has no attribute 'str'
'str' object has no attribute 'str'
notebook_link
apply将调用cont函数,并从Name列中逐个值地向它传递一个值。这意味着cont函数中的Name变量已经是一个字符串。在
apply
cont
Name
还要注意,apply使用的每个函数都必须返回一些值,因此如果名称不包含“Charles”,则返回名称本身。在
同样2,Seriesapply方法没有axis关键字参数。在
Series
axis
def cont(Name): if 'Charles' in Name: return 'Ch' return Name
你甚至不需要定义它:
您可以使用矢量化的str.contains返回布尔掩码,并将满足条件的所有行设置为所需的值,而不是使用循环或apply
str.contains
titanic.loc[titanic['Name'].str.contains('Charles'), 'namest'] = 'Ch'
apply
将调用cont
函数,并从Name
列中逐个值地向它传递一个值。这意味着cont
函数中的Name
变量已经是一个字符串。在还要注意,
apply
使用的每个函数都必须返回一些值,因此如果名称不包含“Charles”,则返回名称本身。在同样2,
Series
apply
方法没有axis
关键字参数。在你甚至不需要定义它:
^{pr2}$您可以使用矢量化的
str.contains
返回布尔掩码,并将满足条件的所有行设置为所需的值,而不是使用循环或apply
相关问题 更多 >
编程相关推荐