【发布时间】:2021-05-23 11:27:55
【问题描述】:
import pandas as pd
import re
df = pd.DataFrame({"A":['1324 cats',pd.np.nan,'There were 25647900 tickets',34254], "B":[543,678678,0,0]})
在一个示例 DataFrame 中,就像上面的那个一样,我正在尝试计算一个新列,我在其中提取任何连续的数字运行。在单元格中只有一个整数的情况下,当我将单元格值交给 re.search() 时,我将单元格值视为字符串,并且我正在尝试使用 pd.isna() 绕过空值,但我仍然得到以下错误:“'NoneType' 对象不可下标”
df['C'] = df['A'].apply(lambda x: re.search(r'\d+',str(x))[0] if not pd.isna(x) else x)
这种方法在不涉及 re 的过程中效果很好,如下所示:
df['C'] = df['A'].apply(lambda x: 'Y' if not pd.isna(x) else x)
【问题讨论】: