dataframe筛选某列纯中文
时间: 2024-05-26 21:07:51 浏览: 104
您好,要筛选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 筛选某一列的特定值
在Pandas DataFrame中筛选某一列的特定值,你可以使用以下几种方式:
1. 使用`loc`与`isin`函数[^1]:
```python
df.loc[df['column_name'].isin(['specific_value'])]
```
这将返回`column_name`列中包含`specific_value`的所有行。
2. 使用`query`函数[^2],如果DataFrame有名为`query`的方法(常见于Pandas的新版本):
```python
df.query(f"column_name == 'specific_value'")
```
或者如果DataFrame没有`query`方法,可以这样编写条件表达式:
```python
df[df['column_name'] == 'specific_value']
```
3. 如果你想筛选出不等于特定值的行,可以这样做:
```python
df.loc[df['column_name'] != 'specific_value']
```
或者
```python
df.query("column_name != 'specific_value'")
```
请注意,上述操作都需要替换`column_name`和`specific_value`为你实际的数据框列名和你要筛选的具体值。
阅读全文