dataframe筛选某列纯中文
时间: 2024-05-26 15:07:51 浏览: 98
您好,要筛选dataframe中某列纯中文的数据,可以利用正则表达式来匹配中文字符。以下是示例代码:
```python
import pandas as pd
import re
# 创建示例数据
data = {'姓名': ['张三', '李四', '王五', 'Tom', 'Jerry'], '年龄': [20, 25, 30, 35, 40]}
df = pd.DataFrame(data)
# 筛选姓名列中纯中文的数据
pattern = re.compile(r'^[\u4e00-\u9fa5]+$') # 定义纯中文的正则表达式
df_chinese = df[df['姓名'].apply(lambda x: pattern.match(x) is not None)]
print(df_chinese)
```
运行结果如下:
```
姓名 年龄
0 张三 20
1 李四 25
2 王五 30
```
以上代码中,`pattern` 定义了一个纯中文的正则表达式,`df['姓名'].apply(lambda x: pattern.match(x) is not None)` 对姓名列中的每个元素都进行正则匹配,只有匹配成功的才会被筛选出来。
相关问题
DataFrame筛选某列不为空的数据
要筛选DataFrame中某列不为空的数据,可以使用`dropna()`方法。下面是一个示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, None, 20],
'City': ['Beijing', 'Shanghai', 'Guangzhou', None]}
df = pd.DataFrame(data)
# 筛选Age列不为空的数据
filtered_df = df.dropna(subset=['Age'])
print(filtered_df)
```
输出结果为:
```
Name Age City
0 Alice 25.0 Beijing
1 Bob 30.0 Shanghai
3 David 20.0 None
```
dataframe根据某列值筛选
好的,对于你的问题,我可以提供以下代码来对DataFrame进行根据某列值筛选操作:
```python
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
'A': ['a', 'b', 'c', 'd'],
'B': [1, 2, 3, 4]
})
# 根据B列的值筛选出B大于等于3的行
filtered_df = df[df['B'] >= 3]
print(filtered_df)
```
希望这个代码能够帮助到你。如果还有其他问题,欢迎继续提出。
阅读全文