python,dataframe批量读取某一文件夹下的所有csv文件
时间: 2023-05-15 21:05:23 浏览: 304
可以使用 pandas 库中的 glob 函数来实现批量读取某一文件夹下的所有 csv 文件。具体代码如下:
```python
import pandas as pd
import glob
path = r'path/to/folder' # 文件夹路径
all_files = glob.glob(path + "/*.csv") # 获取文件夹下所有 csv 文件的路径
dfs = [] # 存储所有读取的 csv 文件的 DataFrame
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
dfs.append(df)
# 将所有 DataFrame 合并为一个大的 DataFrame
df = pd.concat(dfs, axis=0, ignore_index=True)
```
其中,`path` 变量需要替换为实际的文件夹路径。`glob.glob` 函数会返回一个列表,其中包含了所有符合指定模式的文件路径。在上面的代码中,我们使用了 `pd.read_csv` 函数来读取每个 csv 文件,并将它们存储在一个列表中。最后,我们使用 `pd.concat` 函数将所有 DataFrame 合并为一个大的 DataFrame。
相关问题
python以dataframe格式读取文件夹内所有CSV文件,并将所有dataframe合并,同时只保留相同列名的数据
你好!对于你的问题,可以使用 pandas 库来读取所有 CSV 文件并合并为一个 dataframe,代码如下:
```python
import pandas as pd
import glob
path = 'path/to/folder/*.csv'
all_files = glob.glob(path)
# 读取所有CSV文件并合并
df = pd.concat((pd.read_csv(f) for f in all_files))
# 只保留相同列名的数据
df = df.reindex(columns=df.columns.intersection(df.iloc[:,0].dropna().unique()))
print(df)
```
这段代码首先使用 glob 库获取文件夹中所有的 CSV 文件路径,然后使用 pandas 库中的 concat 函数将所有 CSV 文件的数据合并。最后使用 reindex 函数只保留相同列名的数据。
希望对你有帮助!
批量读取一个文件夹下的csv文件提取列合成一个新的数据结构
好的,可以使用Python的pandas库来实现。具体步骤如下:
1. 导入pandas库
```python
import pandas as pd
```
2. 定义一个空的DataFrame
```python
df = pd.DataFrame()
```
3. 使用os库来遍历文件夹中的文件,将每个文件的内容读入DataFrame中
```python
import os
folder_path = 'your_folder_path' # 文件夹路径
for filename in os.listdir(folder_path):
if filename.endswith('.csv'): # 只读取csv文件
file_path = os.path.join(folder_path, filename)
temp_df = pd.read_csv(file_path, usecols=['col_name']) # 读取指定列
df = pd.concat([df, temp_df], axis=1) # 将每个文件的列合并到df中
```
其中,usecols参数可以指定要读取的列名或列序号,可以根据实际情况进行修改。
4. 查看合并后的DataFrame
```python
print(df.head())
```
这样就可以将一个文件夹下的csv文件中指定列合并成一个新的DataFrame了。
阅读全文