Python根据条件将列字符串切分为一个字符
我尝试了不同的方法,根据条件将Panda列字符串切分为特定的字符 例如,考虑Kakle的泰坦尼克数据集,我想把列在“名称”中的所有名字都切成“。”('字符,如果名称中包含该字符,则名称中不存在括号,名称仅包含括号开头之前的字符。因此,您可以将其视为去掉括号以保留括号之前的内容 我用这种方式:Python根据条件将列字符串切分为一个字符,python,pandas,Python,Pandas,我尝试了不同的方法,根据条件将Panda列字符串切分为特定的字符 例如,考虑Kakle的泰坦尼克数据集,我想把列在“名称”中的所有名字都切成“。”('字符,如果名称中包含该字符,则名称中不存在括号,名称仅包含括号开头之前的字符。因此,您可以将其视为去掉括号以保留括号之前的内容 我用这种方式: df.loc[df['Name'].str.rfind('(') > -1, 'Name'] = df['Name'].str.slice(0, df['Name'].str.rfind('('))
df.loc[df['Name'].str.rfind('(') > -1, 'Name'] = df['Name'].str.slice(0, df['Name'].str.rfind('('))
基本上,当找到包含“(”的名称时,它将继续对其进行切片,否则它将返回名称(不包括左括号)。
切片的全部内容是在开始括号之前查找并提取字符
我的解决方案不起作用,因为它会产生“NaN”,如何修复它?您可以使用
pd.Series.str.split
获取之前的所有内容('
)
import pandas as pd
df = pd.DataFrame({'Name': ['Braund, Mr. Owen Harris',
'Cummings, Mrs. John Bradley (Florence Briggs)',
'Heikkinen, Miss. Laina',
'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
'Allen, Mr. William Henry']})
df['Name'] = df.Name.str.split(' \(', expand=True)[0]
输出:
print(df)
Name
0 Braund, Mr. Owen Harris
1 Cummings, Mrs. John Bradley
2 Heikkinen, Miss. Laina
3 Futrelle, Mrs. Jacques Heath
4 Allen, Mr. William Henry
哇,非常感谢你,我不知道拆分功能。