使用python,如何在csv文件的每一行中拆分字符串

时间:2016-03-29 06:52:32

标签: python csv

This is how the csv file looks like

我有这个银行数据集,其中所有变量名称和项目都保留在A列的相同单元格中。如何通过“;”正确分隔它们,并将它们放在c列后面的csv文件的每一列中,用Python?

例如,所有变量名都存储在A1:

年龄; “工作”; “婚姻”, “教育”, “默认”, “住房”; “贷款”, “接触”, “月”, “DAY_OF_WEEK”, “时间”, “运动”,” pdays “;” 前 “” poutcome “;” emp.var.rate “;” cons.price.idx “;” cons.conf.idx “;” euribor3m “;” nr.employed “;” Y“

和B1中的一个数据: 56; “保姆”; “已婚”; “basic.4y”; “没有”, “无”, “无”, “电话”, “可能”, “周一”; 261; 1; 999; 0;“不存在的“; 1.1; 93.994; -36.4; 4.857; 5191;” 否“

与A2,A3,A4 ......中的数据相同。

相反,我想找出一种方法将所有这些分开“;”并将它们放在分开的单元格B1,C1,D1 ......中,它们看起来像:

____ A______B_____C______
1 | 年龄_ | ____ ____工作| marital_ | .....
2 | __56 _
|的 housemaid_ | _married | ..... ...... ......(我希望对所有行都做同样的事情)

我想用Python修改文件,所以使用pandas的read.csv我可以用网格线读取/分析数据。我想我之前用R做了类似的事。

2 个答案:

答案 0 :(得分:0)

首先,您应该先尝试自己做,然后用代码示例提问。

其次,请接受解决问题的答案。 (正如我所看到的那样,未被接受)

第三,这是我对代码的看法。

例如,如果您有数据集(我简化了我的数据集,但它与数据一致):

"cat";"dog";"moose"
"moose";"cat";"dog"

以下是代码:

import csv

csv_rows = []

with open('animals.csv', 'rb') as csvfile:
    orig_csv = csv.reader(csvfile, delimiter=';')
    for row in orig_csv:
        csv_rows.append(row)

with open("animals_1.csv", "wb") as csvfile:
    w = csv.writer(csvfile, delimiter=",")
    for row in csv_rows:
        w.writerow(row)

确保使用正确的分隔符来读取/写入CSV!因为您拥有的数据集在我的电脑上看起来很好。

编辑:稍微更改了示例代码。

答案 1 :(得分:0)

根据我的理解,您的数据的原始格式如下:

[root@ES01 ~]# cat /tmp/test.txt 
c1;c2;c3;c4;c5
v1;v2;v3;v4;v5

您想要更改为

c1,c2,c3,c4,c5
v1,v2,v3,v4,v5

我认为你可以

f=open('/tmp/test.txt')
for line in f.readlines():
    print line.replace(';',',')