python提取文件夹里多个excel文件并筛选数据
时间: 2023-05-31 22:02:26 浏览: 271
以下是一个示例代码,可以提取文件夹中的多个excel文件,并筛选数据:
```python
import os
import pandas as pd
# 设置文件夹路径
folder_path = "your_folder_path"
# 获取文件夹中所有的excel文件
files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 定义筛选条件
condition = "your_condition"
# 循环读取每个excel文件中的数据,并筛选符合条件的数据
for file in files:
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
filtered_df = df[df['column_name'].str.contains(condition)]
# 处理筛选结果
```
其中,需要替换的部分为`your_folder_path`和`your_condition`,分别代表文件夹路径和筛选条件。此示例代码使用pandas库读取excel文件,筛选时根据某一列的关键字是否包含条件来判断。在实际使用中,可以根据需要修改条件和处理筛选结果的代码。
相关问题
python提取文件夹里多个excel文件并筛选数据保存
以下是一个示例代码,用于提取文件夹里多个excel文件并筛选数据保存:
```python
import os
import pandas as pd
# 设置文件夹路径和保存路径
folder_path = '文件夹路径'
save_path = '保存路径'
# 获取文件夹里的所有文件名
file_list = os.listdir(folder_path)
# 遍历文件夹里的所有文件
for file_name in file_list:
# 判断是否为excel文件
if file_name.endswith('.xlsx'):
# 读取excel文件
df = pd.read_excel(os.path.join(folder_path, file_name))
# 筛选数据
df_filtered = df[df['列名'] == '筛选条件']
# 保存筛选后的数据至新的excel文件
df_filtered.to_excel(os.path.join(save_path, file_name), index=False)
```
需要注意的是,代码中的`列名`和`筛选条件`需要根据实际情况进行修改。另外,需要预先安装`pandas`库。
python实现基于站点shp数据与文件夹内多个tif栅格批量提取到点,写入到一个EXCEL表
可以使用Python中的geopandas和rasterio库来实现基于站点shp数据与文件夹内多个tif栅格批量提取到点,并将结果写入到一个EXCEL表中。具体实现方法可以参考以下代码:
```python
import geopandas as gpd
import rasterio
from rasterio.features import geometry_mask
import pandas as pd
# 读取站点shp数据
points = gpd.read_file('points.shp')
# 定义一个函数,用于提取单个tif栅格中站点的值
def extract_value(point, tif_path):
with rasterio.open(tif_path) as src:
# 获取栅格中站点所在像素的行列号
row, col = src.index(point.geometry.x, point.geometry.y)
# 读取该像素的值
value = src.read(1, window=((row, row+1), (col, col+1)))
# 如果值为栅格中的nodata值,则返回None
if value == src.nodata:
return None
else:
return value[]
# 遍历文件夹内的所有tif栅格,提取站点的值
values = []
for tif_path in tif_paths:
with rasterio.open(tif_path) as src:
# 获取栅格的范围
bounds = src.bounds
# 筛选出站点所在范围内的栅格像素
mask = geometry_mask(points.geometry, out_shape=src.shape, transform=src.transform, invert=True)
# 读取栅格中站点的值
for point in points[mask].itertuples():
value = extract_value(point, tif_path)
values.append(value)
# 将结果写入到一个EXCEL表中
df = pd.DataFrame({'value': values})
df.to_excel('result.xlsx', index=False)
```
以上代码中,`points.shp`是站点shp数据的文件路径,`tif_paths`是包含多个tif栅格的文件夹路径。`extract_value`函数用于提取单个tif栅格中站点的值,`values`列表用于存储所有站点的值。遍历文件夹内的所有tif栅格,筛选出站点所在范围内的栅格像素,并调用`extract_value`函数提取站点的值。最后,将结果写入到一个名为`result.xlsx`的EXCEL表中。
阅读全文