为了账号安全,请及时绑定邮箱和手机立即绑定

如何拆分 CSV 行然后复制该行?

如何拆分 CSV 行然后复制该行?

一只名叫tom的猫 2022-05-24 17:12:19
我有一个 CSV 文件,我需要从中生成一个包含新行的新文件。我在 Bash 和 Python 方面有一些经验。例子:SourceCountry A,Place1;Place2;Place3,Other infoCountry B,Place4;Place5;Place6,Other stuffCountry C,Place7;Place8;Place9,Other examplesTargetPlace1,Country A,Other infoPlace2,Country A,Other infoPlace3,Country A,Other infoPlace4,Country B,Other stuffPlace5,Country B,Other stuffPlace6,Country B,Other stuff所以我需要用;分隔符分割第二列,并根据行中的其余信息创建一个新行。
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

这是一个 Python 3 解决方案。注意newline=''每个csv 读/写文档的使用:


import csv


with open('source.csv',newline='') as fin:

    with open('target.csv','w',newline='') as fout:

        r = csv.reader(fin)

        w = csv.writer(fout)


        # Read original three columns

        for country,places,other in r:


            # Write a row for each place

            for place in places.split(';'):

                w.writerow([place,country,other])

如果仍在使用 Python 2,请改用以下开放语法:


with open('source.csv','rb') as fin:

    with open('target.csv','wb') as fout:


查看完整回答
反对 回复 2022-05-24
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

假设它总是第二列。如果 columnNumber 是不同的列,请更改它(为了便于使用,我从 1 而不是 0 开始计算它)。


import csv

newData = []

columnNumber = 2

with open('data.csv') as csvfile:

    line = csv.reader(csvfile, delimiter = ',')

    for row in line:

        cStr = row[columnNumber-1].split(';')

        for i in range(0,len(cStr)):

            temp = []

            for j in range(0, len(row)):

                if(j==columnNumber-1):

                    temp.append(cStr[i])

                else:

                    temp.append(row[j])

            newData.append(temp)

with open('output.csv', 'w', newline="") as outFile:

    writer = csv.writer(outFile)

    writer.writerows(newData)


查看完整回答
反对 回复 2022-05-24
?
动漫人物

TA贡献1815条经验 获得超10个赞

如果您有 csv 文件,那么最简单的方法是打开 Excel,然后导航到文件>打开并选择“所有文件”并导航到要修改的 csv 文件。当你打开这个文件时,它应该让你选择说明你想用什么字符作为分隔符,你可以输入“;”。

应该还有一些您同意的选项,然后您将拥有一个 xls 文件,其中的字段由“;”分隔。

为了从这个到你想要的表,我建议创建一个数据透视表。我的回答是基于这是一次性的,而如果您必须重复此功能,最好用 Excel VBA 或 Python 编写一些东西。如果您遇到困难,很乐意提供进一步的建议。


查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信