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:
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)
TA贡献1815条经验 获得超10个赞
如果您有 csv 文件,那么最简单的方法是打开 Excel,然后导航到文件>打开并选择“所有文件”并导航到要修改的 csv 文件。当你打开这个文件时,它应该让你选择说明你想用什么字符作为分隔符,你可以输入“;”。
应该还有一些您同意的选项,然后您将拥有一个 xls 文件,其中的字段由“;”分隔。
为了从这个到你想要的表,我建议创建一个数据透视表。我的回答是基于这是一次性的,而如果您必须重复此功能,最好用 Excel VBA 或 Python 编写一些东西。如果您遇到困难,很乐意提供进一步的建议。
添加回答
举报