将不同形状的 CSV 组合成一个 CSV

Posted

技术标签:

【中文标题】将不同形状的 CSV 组合成一个 CSV【英文标题】:Combining CSV of different shapes into one CSV 【发布时间】:2020-07-14 23:24:39 【问题描述】:

我有不同行数和列数的 CSV。我想创建一个大型 CSV,其中所有 CSV 数据直接堆叠在一起,由第一列对齐。我尝试了下面的脚本,但成功有限; b 是一个空数组,它不保存来自先前循环的数据。

from os import walk
import sys
import numpy as np

filenames= []
dirpath = []
filtered = []
original = []
f = []
b = np.empty([2, 2])



for (dirpath, dirnames, filenames) in walk("C:\\Users\\dkim1\\Python Scripts\\output"): 
     f.extend(dirnames) 

print(f) 

for names in f:  
    print(names)
    df = np.genfromtxt('C:\\Users\\dkim1\\Python Scripts\\output\\' + names + '\\replies.csv', dtype =None, delimiter = ',', skip_header=1, names=True)
    b = np.column_stack(df)
print(b)

【问题讨论】:

【参考方案1】:

你试过 pd.concat() 吗?

import os
import pandas as pd

# just used a single dir for example simplicity, rather than os.walk()
root_dir = "your directory path here"
file_names = os.listdir(root_dir)

cat_list=[]
for names in file_names:  
    df = pd.read_csv(os.path.join(root_dir, names), delimiter = ',', header=None)
    cat_list.append(df)


concatted_df = pd.concat(cat_list)

【讨论】:

以上是关于将不同形状的 CSV 组合成一个 CSV的主要内容,如果未能解决你的问题,请参考以下文章

TSQL:如何将单列的行加入/组合成 CSV 列表

Python:读取两个 csv 文件组合成一个新的 cvs 文件,错误:太多值无法解压

Python:读取两个 csv 文件组合成一个新的 cvs 文件,错误:太多值无法解压

将多个 numpy 数组组合成不同形状之一

可组合成内容形状的剪辑

使用 Pandas [with key column] 将 CSV 与不同的列组合