pandas提取某一列具有相同规律的数字
时间: 2023-11-04 16:14:19 浏览: 82
可以使用正则表达式来提取具有相同规律的数字列。假设数据框为df,列名为col,数字规律为3个数字-3个数字-4个数字,可以使用以下代码:
```
import re
pattern = r'\d{3}-\d{3}-\d{4}' # 正则表达式
df['new_col'] = df['col'].apply(lambda x: re.findall(pattern, str(x))[0] if re.findall(pattern, str(x)) else None)
```
解释一下代码:
1. `import re`:导入正则表达式模块。
2. `pattern = r'\d{3}-\d{3}-\d{4}'`:定义正则表达式,\d表示数字,{3}表示匹配三个数字,-表示匹配“-”符号。
3. `df['new_col'] = df['col'].apply(lambda x: re.findall(pattern, str(x))[0] if re.findall(pattern, str(x)) else None)`:使用apply函数对col列的每个元素应用lambda函数,lambda函数使用re.findall函数提取符合正则表达式的数字,如果提取到数字则返回第一个数字,否则返回None。最后将提取到的数字存入新的列new_col中。
需要注意的是,如果某些元素中没有符合正则表达式的数字,则会返回None。如果需要保留原始数据,可以将lambda函数中的else部分改为返回原始数据。
阅读全文