如何在循环中使用concat合并大量子SV

2024-04-20 00:04:23 发布

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

我正在尝试将大量子CSV合并到一个CSV。你知道吗

我要把它们合并成一排。你知道吗

我试过pd.concat([df1, df4], axis=1)

但结果CSV的数据是最后一个子CSV的数据。它没有合并。你知道吗

我想要的是:

A     B        AB
A  +  B   ->   AB
A     B        AB

代码如下:

def listdirInMac(path):
    os_list = os.listdir(path)
    for item in os_list:
        if item.startswith('.') and os.path.isfile(os.path.join(path, item)):
            os_list.remove(item)
    os_list.sort()
    return os_list

root='/Users/alex/Documents/data/want/test/'
result=pd.DataFrame()
pieces=[]
#all txt data will append on this variable
for file in listdirInMac(root):
    if 'CSV' in file:          
        pathname=os.path.join(root,file)  #file path 
        #print pathname
        temp=pd.read_csv(pathname,usecols=[1],header=None)  # read csv
        result = pd.concat([newfile,temp],axis=1)

result.to_csv('/Users/alex/Documents/data/1/result.csv')     

Tags: csvpathindataabosrootresult
1条回答
网友
1楼 · 发布于 2024-04-20 00:04:23

我建议您在循环中读取您的数据帧,并在外部调用pd.concat一次。你知道吗

pieces = []
for file in listdirInMac(root):
    ...
    pieces.append(temp)

现在已经有了数据帧列表,只需将其传递给concat

df = pd.concat(pieces, axis=1)
df.to_csv(...)

相关问题 更多 >