如何使用Python合并来自多个CSV文件的列

2024-09-29 01:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

可能这个问题的答案是有的,但我不能得到适当的解决办法,因此我正在寻找完美的解决办法。假设我有多个CSV文件(大约1500个),其中有一列包含一些时间序列数据(10000次或行)。所有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

我的代码不起作用了,还提供了其他东西:

^{pr2}$

如果有人能帮上忙吗?在


Tags: 文件csv数据答案名称标题时间序列
3条回答

实现这一点的方法之一是通过合并现有CSV文件中的数据来创建另一个CSV文件(假设您有aa##.csv格式的CSV文件)。。。在

contents = []

for filenum in range(2):
    f = open('aa{}.csv'.format(filenum + 1), 'r')
    lines = f.readlines()
    print(lines)
    f.close()

    if contents == []:
        contents = [[] for a in range(len(lines))]

    for row in range(len(lines)):
        contents[row].append(lines[row].rstrip('\n'))
        print(lines[row])

print(contents)
f = open('aa_new.csv', 'w')

for row in range(len(contents)):
    line = str(contents[row])
    line = line.strip('[]')
    f.write(line + '\n')

f.close()

然后可以使用pandas打开并显示此文件。在

你可以试试下面的方法,在纽比的帮助下

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=',')

使用pandas concat函数

import pandas as pd
dfs = []
for filenum in range(1,1501):
    dfs.append( pd.read_csv('aa{}.csv'.format(filenum)) )
print(pd.concat(dfs,axis=1).to_csv(index=False))

相关问题 更多 >