javy1688 2022-01-24 01:28 采纳率: 100%
浏览 379
已结题

用python读取多个csv表指定数据写入一个表中

我想用python 合并一组表格,麻烦给写可直接用的代码

目录D:/001 文件下有多个cvs表(表1到表?),
把第二列(B2到B?,数量不固定)除以固定值A2,
得到新的列合并输出在all.csv中,放同目录下
第一行输出表格文件名,原表第一行数据不需要,
如图分表第3列是需要的生成的数据合并到总表

img

下面是一组参考代码,用来改改可能快一点

import pandas as pd
import os
# 获取当前路径
cwd = os.getcwd()

# 要拼接的文件夹及其完整路径,注不要包含中文
# 待读取批量csv的文件夹 
read_path =  'data_Q1_2018' 
# 待保存的合并后的csv的文件夹           
save_path =  'data_Q1_2018_merge'  
# 待保存的合并后的csv       
save_name = 'Modified.csv'   
# 修改当前工作目录
os.chdir(read_path)

# 将该文件夹下的所有文件名存入列表
csv_name_list = os.listdir()

# 读取第一个CSV文件并包含表头,用于后续的csv文件拼接
df = pd.read_csv( csv_name_list[0]) 

# 读取第一个CSV文件并保存
df.to_csv( cwd + '\\' + save_path + '\\' + save_name , encoding="utf_8",index=False)
# 循环遍历列表中各个CSV文件名,并完成文件拼接
for i in range(1,18):
    df = pd.read_csv( csv_name_list[i] )
    df.to_csv(cwd + '\\' + save_path + '\\' + save_name ,encoding="utf_8",index=False, header=False, mode='a+')


  • 写回答

8条回答 默认 最新

  • heianduck 2022-01-24 09:36
    关注
    import pandas as pd
    import glob
    import os
    # 获取当前路径
    cwd = os.getcwd()
     
    # 要拼接的文件夹及其完整路径,注不要包含中文
    ## 待读取批量csv的文件夹 
    read_path =  'data_Q1_2018' 
    ## 待保存的合并后的csv的文件夹           
    save_path =  'data_Q1_2018_merge'  
    ## 待保存的合并后的csv       
    save_name = 'Modified.csv'   
    # 修改当前工作目录
    os.chdir(read_path)
     
    # 将该文件夹下的所有文件名存入列表
    csv_name_list = glob.glob('*csv')
     
    # 读取第一个CSV文件并包含表头,用于后续的csv文件拼接
    df = pd.read_csv(csv_name_list[0])
    tableName = os.path.splitext(csv_name_list[0])[0]
    df[tableName] = df[df.columns[1]] / df.iloc[0,0]
    tableList = []
    tableList.append(tableName)
    # # 循环遍历列表中各个CSV文件名,并完成文件拼接
    for i in range(1,len(csv_name_list)):
        data = pd.read_csv( csv_name_list[i] )
        tableName2 = os.path.splitext(csv_name_list[i])[0]
        tableList.append(tableName2)
        data[tableName2] = data[data.columns[1]] / data.iloc[0,0]
        df = pd.concat([df,data],axis=1)
        finalData = df[tableList]
    finalData.to_csv(cwd + '\\' + save_path + '\\' + save_name ,encoding="utf_8",index=False)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 修改了问题 1月24日
  • 修改了问题 1月24日
  • 展开全部

悬赏问题

  • ¥15 Paddleocr:out of memory error on GPU
  • ¥30 51单片机C语言数码管驱动单片机为AT89C52
  • ¥100 只改动本课件的 cal_portfolio_weight_series(decision_date), 跑完本课件。设计一个信息比率尽量高的策略。
  • ¥20 如何在visual studio 2022中添加ImageMagick库
  • ¥50 如何实现uniapp编译的微信小程序做可回溯视频
  • ¥15 求Houdini使用行家,付费。价格面议。
  • ¥15 前端高拍仪调用问题报错
  • ¥15 想用octave解决这个数学问题
  • ¥15 Centos新建的临时ip无法上网,如何解决?
  • ¥15 海康威视如何实现客户端软件对设备语音请求的处理。