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

用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 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上