【发布时间】:2021-05-23 18:49:11
【问题描述】:
我想从列表中取出“已键入”列中的数据
这是我的代码:
cel = str(input('Qual o modelo? \nModelo:'))
df['digitado'] =df.apply(lambda row: re.findall(cel,row['modelo'], flags=re.I),axis=1)
df
返回:
我如何从[]中取出“OT”,而空的[]离开nan
【问题讨论】:
我想从列表中取出“已键入”列中的数据
这是我的代码:
cel = str(input('Qual o modelo? \nModelo:'))
df['digitado'] =df.apply(lambda row: re.findall(cel,row['modelo'], flags=re.I),axis=1)
df
返回:
我如何从[]中取出“OT”,而空的[]离开nan
【问题讨论】:
您可以使用re.search 和:= 运算符来代替re.findall:
输入数据框:
modelo
0 OT632
1 TCL 10 32 GB
2 OT639
3 Blade A3
然后:
cel = "OT"
df["digitado"] = df.apply(
lambda row: m.group(0)
if (m := re.search(cel, row["modelo"], flags=re.I))
else np.nan,
axis=1,
)
print(df)
打印:
modelo digitado
0 OT632 OT
1 TCL 10 32 GB NaN
2 OT639 OT
3 Blade A3 NaN
或者没有:=操作符:
def fn(row, cel):
m = re.search(cel, row["modelo"], flags=re.I)
if m:
return m.group(0)
return np.nan
df["digitado"] = df.apply(fn, cel=cel, axis=1)
print(df)
【讨论】: