问题:我在一个文件夹中有两个CSV文件名称File1.CSV和File2.CSV,其中CSV的结构如下
File1.csv
Column1 Column2
Data. Data.
File2.csv
Column3 Column4
最后的文件。csv结构应该是这样的:
Table Name. Column Names
File1. Column1
File1. Column2
File2 Column3
File2 Column4
我写过这样的东西
all_files = glob.glob(path + "/*.csv")
list1 = []
for filename in all_files:
df = pd.read_csv(filename, index_col=None, header=0)
list1.append(df)
frame = pd.concat(list1, axis=0, ignore_index=True)
print(frame)
请建议我把这个写入一个新的csv文件。
为了生成您期望的最终版本,您可能需要为每个文件创建一个结果数据框和一个临时格式化的数据框,然后在每个单独的循环中将它们连接在一起。
下面的代码可以满足您的需求:
result_df = pd.DataFrame(columns=["Table Name", "Column Names"])
for filename in all_files:
df = pd.read_csv(filename)
columns = df.columns.tolist()
formatted_df = pd.DataFrame(data={"Table Name": [filename] * len(columns), "Column Names": columns})
result_df = pd.concat([result_df, formatted_df], axis=0, ignore_index=True)
result_df.to_csv("final_file.csv", index=False)
输出:
index | 表名 | 列名 | 0 | File1.csv | col1 | 1
---|---|---|
File1.csv | col2 | |
File2.csv | col3 | |
3 | File2.csv | col4 |