使用python仅解析字符串中的特定字符
尝试拆分和解析列中的字符,并将解析后的数据提交到不同的列中 我试图通过在给定的列数据中使用u进行解析来实现同样的效果,在字符串中存在的u的数量被固定为2之前,它一直工作良好 输入数据:使用python仅解析字符串中的特定字符,python,pandas,Python,Pandas,尝试拆分和解析列中的字符,并将解析后的数据提交到不同的列中 我试图通过在给定的列数据中使用u进行解析来实现同样的效果,在字符串中存在的u的数量被固定为2之前,它一直工作良好 输入数据: Col1 U_a65839_Jan87Apr88 U_b98652_Feb88Apr88_(2).jpg.pdf V_C56478_mar89Apr89 Q_d15634_Apr90Apr91 Q_d15634_Apr90Apr91_(3).jpeg.pdf S_e15336_may91Apr93
Col1
U_a65839_Jan87Apr88
U_b98652_Feb88Apr88_(2).jpg.pdf
V_C56478_mar89Apr89
Q_d15634_Apr90Apr91
Q_d15634_Apr90Apr91_(3).jpeg.pdf
S_e15336_may91Apr93
NaN
预期产出:
col2
Jan87Apr88
Feb88Apr88
mar89Apr89
Apr90Apr91
Apr90Apr91
may91Apr93
我一直在尝试的代码:
df = pd.read_excel(open(r'Dats.xlsx', 'rb'), sheet_name='Sheet1')
df['Col2'] = df.Col1.str.replace(
'.*_', '', regex=True
)
print(df['Col2'])
在此处使用
str.extract
:
df[“col2”]=df[“Col1”].str.extract(r'(((?:[a-z]{3}\d{2}){2}),flags=re.IGNORECASE)
在此处使用
str.extract
:
df[“col2”]=df[“Col1”].str.extract(r'(((?:[a-z]{3}\d{2}){2}),flags=re.IGNORECASE)
我想你想要这个:
col2 = df.Col1.str.split("_", expand=True)[2]
输出:
0 Jan87Apr88
1 Feb88Apr88
2 mar89Apr89
3 Apr90Apr91
4 Apr90Apr91
5 may91Apr93
6 NaN
(如果你不想要最后一行,你可以dropna
)我想你想要这个:
col2 = df.Col1.str.split("_", expand=True)[2]
输出:
0 Jan87Apr88
1 Feb88Apr88
2 mar89Apr89
3 Apr90Apr91
4 Apr90Apr91
5 may91Apr93
6 NaN
(如果您不想要最后一行,您可以
dropna
)基于您的问题,pandas
DataFrameapply
可以是一个很好的解决方案:
- 首先,通过将
s替换为空字符串NaN
'
- 接下来,使用
regex
- 然后,轻松地将该函数应用于DataFrame:
希望以上内容有所帮助。基于您的问题,
pandas
DataFrameapply
可能是一个很好的解决方案:
- 首先,通过将
s替换为空字符串NaN
'
- 接下来,使用
regex
- 然后,轻松地将该函数应用于DataFrame:
希望上面的帮助。我希望在继续之前删除所有空值,在执行上面的行之前,df.Col1=df.Col1.dropna(inplace=True),但它会给出错误。请建议如何处理它。不清楚但看不到错误消息,但可能会删除
inplace=True
。就地修改通常返回None
,只对对象进行操作。我希望在继续之前删除所有空值,在执行上述行之前,df.Col1=df.Col1.dropna(inplace=True),但它给出了错误。请建议如何处理它。不清楚但看不到错误消息,但可能会删除inplace=True
。就地修改通常返回None
,只对对象进行操作
def fun(s):
import re
m = re.search(r'\w{3}\d{2}\w{3}\d{2}', s)
if m:
return m.group(0)
else:
return ''
df['Col2'] = df['Col1'].apply(fun)
Col1 Col2
0 U_a65839_Jan87Apr88 Jan87Apr88
1 U_b98652_Feb88Apr88_(2).jpg.pdf Feb88Apr88
2 V_C56478_mar89Apr89 mar89Apr89
3 Q_d15634_Apr90Apr91 Apr90Apr91
4 Q_d15634_Apr90Apr91_(3).jpeg.pdf Apr90Apr91
5 S_e15336_may91Apr93 may91Apr93
6