![](/img/trans.png)
[英]Python: How to split each string into new row with some string concatenation
[英]With python, how to split string in each row of a csv file
我有這個銀行數據集,所有變量名和項目都位於 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.