pandas 筛选某列包含空格或汉字的行
  X5zJxoD00Cah 2023年11月02日 65 0
import pandas as pd

# 创建示例 DataFrame
data = {'某列': ['Hello', '123', '包含空格', '包含 汉字', 'OnlyLetters']}
df = pd.DataFrame(data)

# 使用正则表达式筛选包含空格或汉字的行
pattern = r'\s|[\u4e00-\u9fa5]'  # 正则表达式匹配空格或汉字

filtered_df = df[df['某列'].str.contains(pattern, regex=True, na=False)]

# 打印筛选后的 DataFrame
print(filtered_df)


逐个解释正则表达式r'\s|[\u4e00-\u9fa5]'

正则表达式 r'\s|[\u4e00-\u9fa5]' 是一个用于匹配文本模式的正则表达式。让我逐个解释它:

  1. r 前缀:
  • 在正则表达式前面添加 r 前缀表示这是一个原始字符串(raw string),这样可以避免反斜杠 \ 在字符串中被转义。这在正则表达式中非常有用,因为正则表达式通常包含许多反斜杠,而我们不希望它们被解释为转义字符。
  1. \s
  • \s 是一个特殊的正则表达式元字符,表示匹配空白字符(whitespace characters),包括空格、制表符(tab)、换行符等。它用于匹配任何空白字符。
  1. |
  • | 是正则表达式中的逻辑或运算符,用于分隔两个可能的匹配模式,表示 "或" 的关系。
  1. [\u4e00-\u9fa5]
  • [ ] 是字符类(character class)的表示法,在其中可以包含多个字符或字符范围,它表示匹配其中任何一个字符。
  • \u4e00-\u9fa5 是一个字符范围,表示 Unicode 编码范围内的所有汉字字符。具体来说,\u4e00 是第一个汉字("一"),\u9fa5 是最后一个汉字("龥")的 Unicode 编码。这个范围包括了中文汉字的所有字符。

综合起来,正则表达式 r'\s|[\u4e00-\u9fa5]' 的含义是匹配任何包含空白字符或者包含中文汉字字符的文本。这个正则表达式可以用来筛选包含空格或汉字的文本行。例如,在文本中,如果某一行包含空格或者包含中文汉字字符,这个正则表达式将匹配该行。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年11月30日   39   0   0 GroupEmail字符串
X5zJxoD00Cah