pandas 将多个csv文件路径作为参数,将这些文件拼接
时间: 2023-11-22 14:54:55 浏览: 82
你可以使用 `pandas.concat` 函数来拼接多个 CSV 文件。
以下是一个示例代码:
``` python
import pandas as pd
import glob
# 获取所有 CSV 文件的文件路径
file_paths = glob.glob('path/to/files/*.csv')
# 读取所有 CSV 文件并合并
dfs = []
for file_path in file_paths:
df = pd.read_csv(file_path)
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True)
# 打印合并后的 DataFrame
print(merged_df)
```
在该示例中,我们使用 `glob` 模块来获取所有 CSV 文件的文件路径,并使用 `pd.read_csv` 函数读取每个文件。然后,我们将每个 DataFrame 对象添加到一个列表中,并使用 `pd.concat` 函数将它们合并为一个 DataFrame。最后,我们将合并后的 DataFrame 打印出来。
相关问题
pandas读取多个csv文件,如果csv文件名字包含tt_0c,则把第2列放到一个字典里面,键为tt,值为0c和第2列拼接。如果csv文件名字包含tt_100c,则把第2列放到一个字典里面,键为tt,值为100c和第2列。
可以按照以下步骤实现:
1. 导入 pandas 库
2. 定义一个空字典,用于存放结果
3. 使用 glob.glob 函数找到所有符合条件的 csv 文件的路径
4. 遍历所有找到的 csv 文件路径
5. 使用 pandas 的 read_csv 函数读取 csv 文件
6. 判断文件名包含哪种情况,并将第二列及其它信息添加到字典中
7. 返回字典作为结果
下面是示例代码:
```python
import pandas as pd
import glob
result_dict = {}
# 找到所有符合条件的 csv 文件的路径
csv_files = glob.glob("*tt*.csv")
# 遍历所有找到的 csv 文件路径
for file in csv_files:
# 使用 pandas 的 read_csv 函数读取 csv 文件
df = pd.read_csv(file)
# 判断文件名包含哪种情况,并将第二列及其它信息添加到字典中
if "tt_0c" in file:
tt = file.split("_")[0]
value = "0c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(tt, []).append(value.tolist())
elif "tt_100c" in file:
tt = file.split("_")[0]
value = "100c_" + df.iloc[:, 1].astype(str)
result_dict.setdefault(tt, []).append(value.tolist())
# 返回字典作为结果
print(result_dict)
```
需要注意的是,上述代码只是一个示例,具体实现可能需要根据实际情况进行调整。例如,如果需要将字典中的值转换为字符串,可以使用 join 函数。
pandas, 从多个csv文件中获取第2列,形成一个新的csv,并把输入csv文件名字放在第0行,第1行。
好的,可以使用Python中的pandas库来实现这个需求。以下是一个示例代码:
```python
import pandas as pd
import os
# 设置输入和输出文件夹路径
input_folder = "input_folder"
output_folder = "output_folder"
# 获取所有csv文件的文件名
file_names = os.listdir(input_folder)
csv_files = [f for f in file_names if f.endswith('.csv')]
# 创建一个空的DataFrame用于存储结果
result_df = pd.DataFrame()
# 循环处理每个csv文件
for file_name in csv_files:
# 读取csv文件,只保留第2列数据
df = pd.read_csv(os.path.join(input_folder, file_name), usecols=[1])
# 把文件名添加到第0行和第1行
df.loc[-1] = [file_name]
df.loc[-2] = [""]
# 把当前csv文件的数据添加到结果DataFrame中
result_df = pd.concat([result_df, df], axis=0)
# 把结果DataFrame保存为新的csv文件
result_df.to_csv(os.path.join(output_folder, 'result.csv'), index=False, header=False)
```
上述代码中,我们首先定义了输入和输出文件夹的路径,然后获取了输入文件夹中所有的csv文件名。接着,我们循环处理每个csv文件,读取第2列数据,并把文件名添加到第0行和第1行。最后,我们把所有csv文件的数据拼接到一起,并把结果保存为一个新的csv文件。注意,最后保存结果时,我们把index和header都设置为False,这样就不会把DataFrame的行索引和列名也保存到csv文件中了。
阅读全文