pandas 过滤某列不等于空
时间: 2024-08-12 09:05:22 浏览: 102
在Pandas中,你可以使用`dropna()`函数来过滤掉某一列(假设名为'data_column')中的缺失值,但如果你想要筛选出不等于空值的数据,可以使用`equals()`函数结合`~`操作符来进行条件筛选。这里有一个示例:
```python
import pandas as pd
# 假设df是你DataFrame的名字,data_column是你想要筛选的列名
df_filtered = df[df['data_column'] != '']
# 这里我们创建一个新的DataFrame,只包含'data_column'列中不为空的行
df_filtered.head()
```
这段代码会返回一个新的DataFrame,其中'data_column'列中的值都不等于空字符串。
相关问题
pandas 去除某一列为空和为0
要去除某一列为空或为0的行,你可以使用pandas的`dropna()`和`query()`方法。下面是一个示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 0, 35],
'City': ['New York', '', 'Paris']}
df = pd.DataFrame(data)
# 去除某一列为空或为0的行
filtered_df = df.dropna(subset=['Age']).query('Age != 0')
print(filtered_df)
```
在上面的代码中,我们首先创建了一个包含Name、Age和City列的DataFrame。然后,我们使用`dropna()`方法并指定subset参数为['Age'],这样可以删除Age列为空的行。接下来,我们使用`query()`方法并传递'Age != 0'的条件来过滤掉Age列等于0的行。最后,我们打印出筛选后的DataFrame`filtered_df`。
运行上述代码将输出以下结果:
```
Name Age City
0 Alice 25 New York
2 Charlie 35 Paris
```
通过这种方式,你可以轻松地去除pandas DataFrame中某一列为空或为0的行。
如果用pandas查询excel某列存不存在一个列表[1,2,3,4]中的值,存在打印存在值的那一行,不存在打印NA
你可以使用 Pandas 的 `isin` 方法来检查某一列中存在于给定列表中的值。以下是示例代码:
```python
import pandas as pd
# 读取 Excel 文件
= pd.read_excel('your_path.xlsx')
# 列名
column_name = 'column_name'
# 给定的列表
value_list = [1, 2,3, 4]
# 使用 isin 方法过出存在于列表中的行
filtered_df = df[df[column_name].isin(value_list)]
if filtered_df.empty:
print('NA')
else:
print(filtered_df)
```
在上述代码中,你需要将 `'your_file_path.xlsx'` 替换为你的 Excel 文件路径,并将 `'column_name'` 替换为你要查询的列名。
代码首先使用 `read_excel` 方法读取 Excel 文件并创建 DataFrame。然后,它使用 `isin` 方法过滤出包含给定列表中值的行,并将结果保存在 `filtered_df` 中。
最后,代码检查 `filtered_df` 是否为空。如果为空,说明没有找到匹配的行,打印 `'NA'`。如果不为空,打印 `filtered_df`,即包含匹配行的 DataFrame。
注意:在运行代码之前,请确保你已经安装了 Pandas 库,并且将文件路径和列名替换为正确的值。