我有一些数据如下:
In [1]:
import pandas as pd
data = [["xxxx【A001-01】", "A001-01"],
["xxxx【A002】", ""],
["xxxx【A003-01】", "A003-01"]]
df = pd.DataFrame(data=data,columns=['A','B'])
df
out[1]:
A B
0 xxxx【A001-01】 A001-01
1 xxxx【A002】
2 xxxx【A003-01】 A003-01
我试过了,但没有成功:
df.loc[df['B'] == ""]["B"] = df.loc[df['B'] == ""]["A"].str.extract(r"(【[A-Z][0-9]+】)",expand=True).replace("【", "",regex=True).replace("】", "",regex=True)
我希望得到以下结果:
out[1]:
A B
0 xxxx【A001-01】 A001-01
1 xxxx【A002】 A002
2 xxxx【A003-01】 A003-01
更改} 按掩码和列选择:
【】
之间提取值的regex模式,只创建一次布尔掩码m
,最后使用^{相关问题 更多 >
编程相关推荐