pd.Dataframe 按第一列使用正则筛选得到的字符串中的数字进行排序
时间: 2024-10-09 18:16:39 浏览: 39
详解pandas.DataFrame中删除包涵特定字符串所在的行
5星 · 资源好评率100%
在Pandas DataFrame中,如果你想按DataFrame的第一列(假设它包含了字符串,其中可能嵌套有数字)使用正则表达式筛选出所有的数字,并对这些数字进行排序,你可以这样做:
首先,你需要导入`re`模块,这是Python中的正则表达式库。然后,你可以编写一个函数来从每个字符串中提取数字,接着结合`applymap()`函数遍历每一行的所有元素,并对提取出来的数字列表进行排序。
这是一个示例步骤:
```python
import pandas as pd
import re
# 假设你有一个名为df的DataFrame
df = ... # 填充你的DataFrame实例
# 定义一个函数来从字符串中提取数字
def extract_numbers(s):
return [int(num) for num in re.findall(r'\d+', s)]
# 使用applymap()提取第一列(列名假设为'A')中的所有数字并存储到一个新的列
df['numbers'] = df['A'].apply(extract_numbers)
# 对新列'numbers'进行排序
df_sorted = df.sort_values(by='numbers')
# 如果你只关心排序后的原数据,可以删除'numbers'列
df_sorted.drop(columns=['numbers'], inplace=True)
阅读全文