将不同形状的 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的主要内容,如果未能解决你的问题,请参考以下文章
Python:读取两个 csv 文件组合成一个新的 cvs 文件,错误:太多值无法解压