V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Devin
V2EX  ›  问与答

多个 csv 文件字段相同,顺序不同,怎么合并成一个文件?

  •  
  •   Devin · 2017-09-10 18:45:44 +08:00 via iPhone · 2540 次点击
    这是一个创建于 2642 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 grep, sed, awk 之类的命令操作会比较简单么?
    6 条回复    2017-09-10 21:15:51 +08:00
    15015613
        1
    15015613  
       2017-09-10 19:10:15 +08:00 via Android
    是字段顺序不同吗?

    字段顺序不同的话,grep,sed, awk 很难处理的。
    这种情况用 Python 写一个简单脚本就可以了,也就几行的事。
    hoyixi
        2
    hoyixi  
       2017-09-10 19:16:41 +08:00
    合并前要统一字段顺序吧,关键看 “顺序不同”, 这个不同是否有规律,如果没有规律,每个或每几个文件,都有自己的一个字段顺序,和其它文件都不一样,那不管是命令还是编程,似乎都要单独分类处理顺序。

    如果就几个文件,最简单的就是:
    1 Excel 打开 csv
    2 分列 (不会刻意去搜 “ Excel csv 分列”)
    3 移动列,统一顺序
    4 用你喜欢的方法合并
    Devin
        3
    Devin  
    OP
       2017-09-10 19:24:06 +08:00 via iPhone
    @hoyixi 是的,先把所有字段找出来并统一顺序
    15015613
        4
    15015613  
       2017-09-10 20:05:05 +08:00   ❤️ 1
    @Devin
    刚刚试着写了一下,四行代码的事。

    ```
    import pandas as pd

    files = ['1.csv', '2.csv', '3.csv']
    result = pd.concat([pd.read_csv(f) for f in files],ignore_index=True)
    result.to_csv('all.csv',index=False)
    ```
    Devin
        5
    Devin  
    OP
       2017-09-10 20:07:29 +08:00 via iPhone
    @15015613 谢谢,看来要学学 Python 了😂
    ho121
        6
    ho121  
       2017-09-10 21:15:51 +08:00 via Android   ❤️ 1
    全部转成 json,再转成 csv
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5911 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:17 · PVG 10:17 · LAX 18:17 · JFK 21:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.