import pandas as pd
import os
# path to folder where the csv files are stored
path = '/path/to/folder'
result = pd.DataFrame()
for i in range(1, n+1):
filename = "{}.car.csv".format(i)
file_path = os.path.join(path, filename)
df = pd.read_csv(file_path)
df['new_label'] = i
result = pd.concat([result, df], ignore_index=True)
result.to_csv('final_result.csv', index=False)
from pathlib import Path
import pandas as pd
input_path = Path("path/to/car/files/").glob("*car.csv")
output_path = "path/to/output"
pd.concat(
(pd.read_csv(x).assign(new_label="new data") for x in input_path), ignore_index=True
).to_csv(f"{output_path}/final.csv", index=False)
4条答案
按热度按时间ih99xse11#
glob
用于获取文件夹中与模式*.csv
匹配的所有文件pd.read_csv
用于将每个文件作为 Dataframe 读取index_col=None
您要告诉Pandas不要使用任何列作为索引,而是为DataFrame创建一个默认索引。header=0
您要告诉Pandas使用CSV文件的第一行作为标题行。pd.concat
用于将所有 Dataframe 合并为单个 Dataframemerged_df
axis=0
意味着连接应该沿着行进行(垂直)ignore_index=True
执行串接,使得丢弃各个 Dataframe 的原始索引,并且为结果 Dataframe 创建新的默认索引。ff29svar2#
这可以通过miller等CSV工具轻松完成:
这将连接文件(不重复标题),并将文件名作为第一列。
f87krz0w3#
可以通过以下方式使用
pandas
库:上面代码中的
n
应该替换为文件夹中csv文件的数量。如果你需要任何代码的解释(如果你是python或dataframes的新手),请在下面注解。
new9mtju4#
使用pathlib和pandas,可以使用.assign()输入新列,最后使用.concat()将所有文件连接成一个文件。