Python 在多种条件下为列中的每一行提取第一个单词
我有一个数据集包含一列字符串。看起来像Python 在多种条件下为列中的每一行提取第一个单词,python,pandas,strsplit,multiple-conditions,Python,Pandas,Strsplit,Multiple Conditions,我有一个数据集包含一列字符串。看起来像 df.a=[['samsung/windows'、'mobile unknown'、'chrome/android']]。 我试图获取每行的第一个单词来替换当前字符串,例如:[“samsung”、“mobile”、“chrome”]] 我申请: df.a=df.a.str.split().str.get(0) 这给了我第一个单词,但带有“/” 这仅拆分包含“/”的字符串 我可以用一行代码得到预期的结果吗?使用re.findall()只得到字母数字 imp
df.a=[['samsung/windows'、'mobile unknown'、'chrome/android']]
。
我试图获取每行的第一个单词来替换当前字符串,例如:[“samsung”、“mobile”、“chrome”]]
我申请:
df.a=df.a.str.split().str.get(0)
这给了我第一个单词,但带有“/”
这仅拆分包含“/”的字符串
我可以用一行代码得到预期的结果吗?使用re.findall()
只得到字母数字
import re
df['a'] = df['a'].apply(lambda x : re.findall(r"[\w']+",x)[0])
使用re.findall()
只获取字母数字
import re
df['a'] = df['a'].apply(lambda x : re.findall(r"[\w']+",x)[0])
您可以将正则表达式语法直接传递给split函数,以便在
/
或'
上使用管道字符|
进行拆分,但他的解决方案只有在这些是数据中唯一的分隔符时才起作用
dfa=pd.Series(['samsung/windows','mobile unknown','chrome/android'])
dfa.str.split(r'/| ')
0 [samsung, windows]
1 [mobile, unknown]
2 [chrome, android]
您可以将正则表达式语法直接传递给split函数,以便在
/
或'
上使用管道字符|
进行拆分,但他的解决方案只有在这些是数据中唯一的分隔符时才起作用
dfa=pd.Series(['samsung/windows','mobile unknown','chrome/android'])
dfa.str.split(r'/| ')
0 [samsung, windows]
1 [mobile, unknown]
2 [chrome, android]
pandas
功能完全可以执行您想要的操作:
将正则表达式pat中的捕获组提取为数据帧中的列
pandas
功能完全可以执行您想要的操作:
将正则表达式pat中的捕获组提取为数据帧中的列
谢谢我尝试了:train_id['id_31']=train_id['id_31'].str.replace('/','').str.split(n=1.str.get(0)。它得到相同的结果,但是你的也可以应用于其他角色。谢谢。我尝试了:train_id['id_31']=train_id['id_31'].str.replace('/','').str.split(n=1.str.get(0)。它得到相同的结果,但您的结果也可以应用于其他字符。