首页 > 解决方案 > 如何使用 Python 合并来自多个 CSV 文件的列

问题描述

可能这个问题的答案是可用的,但我无法得到正确的解决方案,因此我正在寻找完美的解决方案。假设我有多个 CSV 文件(大约 1500 个),其中包含单列和一些时间序列数据(10,000 次或行)。所有 CSV 文件中的列标题名称都相同。假设我有 CSV 文件,例如:

aa1.csv      aa2.csv:      aa3.csv:............aa1500.csv:
datavalue   datavalue      datavalue           datavalue
    4            1             1                  2
    2            3             6                  4
    3            3             3                  8                
    4            4             8                  9


I want the output like this:


datavalue,datavalue,datavalue,datavalue,.....datavalue
4,1,1,..2
2,3,6,..4
3,3,3,..8
4,4,8,..9

我的代码不起作用并提供其他内容:

import pandas as pd
import csv
import glob
import os
path 'F:/Work/'
files_in_dir = [f for f in os.listdir(path) if f.endswith('csv')]
for filenames in files_in_dir:
    df = pd.read_csv(filenames)
    df.to_csv('out.csv', mode='a')

如果有人可以提供帮助?

标签: pythonpython-3.xpython-2.7pandasscipy

解决方案


您可以在 numpy 的帮助下尝试以下方式

import pandas as pd
import numpy as np
import os
path 'F:/Work/'
files_in_dir = [f for f in os.listdir(path) if f.endswith('csv')]
temp_data = []
for filenames in files_in_dir:
    temp_data.append(np.loadtxt(filenames,dtype='str'))

temp_data = np.array(temp_data)
np.savetxt('out.csv',temp_data.transpose(),fmt='%s',delimiter=',')

推荐阅读