簡體   English   中英

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

[英]With python, how to split string in each row of a csv file

這是 csv 文件的樣子

我有這個銀行數據集,所有變量名和項目都位於 A 列的相同單元格中。如何用“;”將它們正確分隔,並將它們放在 A 列之后的 csv 文件的每一列中,使用 Python?

例如,所有變量名稱都存儲在 A1 中:

年齡;“工作”;“婚姻”;“教育”;“默認”;“住房”;“貸款”;“聯系方式”;“月”;“星期幾”;“持續時間”;“活動”;“pday”; “以前的”;“poutcome”;“emp.var.rate”;“cons.price.idx”;“cons.conf.idx”;“euribor3m”;“nr.已就業”;“y”

B1中的數據之一:56;"housemaid";"married";"basic.4y";"no";"no";"no";"telephone";"may";"mon";261; 1;999;0;“不存在”;1.1;93.994;-36.4;4.857;5191;“不”

與A2,A3,A4中的數據相同......

相反,我想找出一種方法來用“;”分隔它們。 並將它們放在單獨的單元格 B1、C1、D1..... 所以它們看起來像:

____A_B_____C______
1| 年齡_ |____工作____| 婚姻_|.....
2|__56_ | 女佣_|_已婚|..... ...... ......(我希望對所有行都這樣做)

我想用 Python 修改文件,所以使用 pandas 的 read.csv 我可以用網格線讀取/分析數據。 我想我以前用 R 做過類似的事情。

首先,您應該先嘗試自己做,然后用代碼示例提問。

其次,請接受解決您問題的答案。 (如我所見,上一個未被接受)

第三,這是我對代碼的看法。

例如,如果你有你的數據集(我簡化了我的,但它沿着你的數據線):

"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! 因為您擁有的數據集在我的 PC 上看起來不錯。

編輯:稍微更改了示例代碼。

根據我的理解,您數據的原始格式如下:

[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(';',',')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM