添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

pd.Dataframe 按第一列使用正则筛选得到的字符串中的数字进行排序

45浏览 · 2024-10-09 12:16:39
在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)
相关问题
在Pandas库中,你可以使用`DataFrame`的`query()`函数结合正则表达式(regex)筛选数据,然后利用`s
你可以使用正则表达式或者 Unicode 编码来找出 pd.DataFrame 中的中文字符。 使用正则表达式: ```python import re def find_chinese_characters(text): pattern = '[\u4e00-\u9fa5]+' return re.findall(pattern, text) # 找出一个字符串中的中文字符 text = '这是一个字符串,里面有中文字符' print(find_chinese_characters(text)) # 找出 DataFrame 中的中文字符 import pandas as pd df = pd.DataFrame({'col1': ['这是中文', '这也是中文'], 'col2': ['这不是中文', '这也不是中文']}) for col in df.columns: df[col] = df[col].apply(find_chinese_characters) print(df)