前提・実現したいこと
Test3.csvのうちV2列の2行目以降全ての文字列において.11-15番目,51-60番目の文字列を抽出して新たな列に格納すると同時に,"-"が登場した際にそれを削除するようなコードを書きたいと考えています.
お知恵をお貸し頂けますと幸いです.宜しくお願い致します.
尚,こちらは本データ(1000行以上)を簡略化したものです.
該当のソースコード
python
1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3import pandas as pd 4 5slice_range1 = slice(11, 15) 6slice_range2= slice(51, 60) 7input_path = "Test3.csv" 8output_path = "separated.csv" 9 10with open(input_path) as f: 11 element = f.read() 12 13with open(output_path, "w") as g: 14 for index, row in element.iterrows(): 15 csv_input['Part1'][index] = slice_range1 16 csv_input['Part2'][index] = slice_range2 17 18# 文字列の途中の改行を消す 19text = re.sub(r"-", "", text) 20 21csv_input.to_csv(g, index=False)
現実の出力結果
separated.csv
1Entry,V2,Part1,Part2 2A0K7T1,----MSNKGQL-LQDPFLNALRKEHVPVSIYLVNGIKLQGNIESFDQYVVL-------LR,"slice(11, 15, None)","slice(51, 60, None)" 3A0KGS1,-----MAKGQS-LQDPFLNALRRERIPVSIYLVNGIKLQGQIESFDQFVIL-------LK,"slice(11, 15, None)","slice(51, 60, None)" 4A0KSR7,-----MAKGQS-LQDPFLNALRRERVPVSIYLVNGIKLQGQVESFDQFVIL-------LK,"slice(11, 15, None)","slice(51, 60, None)" 5A0Q0M9,-----MNKSTNNLQDLFLNNARINRISVTIFLTNGYKLEGLVKGFDNFTII-------LD,"slice(11, 15, None)","slice(51, 60, None)" 6A0Q6S3,-----MSRISS-LQDPFLNALRKEKVSVSVYLVNGIKLQGQVEAFDQFCIV-------LR,"slice(11, 15, None)","slice(51, 60, None)"
理想の出力結果
output.csv
1Entry,V2,Part1,Part2 2A0K7T1,LLQD,LLR 3A0KGS1,SLQD,LLK 4A0KSR7,SLQD,LLK 5A0Q0M9,NNLQD,ILD 6A0Q6S3,SLQD,VLR
使用ファイル
Test3.csv
1Entry,V2 2A0K7T1,----MSNKGQL-LQDPFLNALRKEHVPVSIYLVNGIKLQGNIESFDQYVVL-------LR 3A0KGS1,-----MAKGQS-LQDPFLNALRRERIPVSIYLVNGIKLQGQIESFDQFVIL-------LK 4A0KSR7,-----MAKGQS-LQDPFLNALRRERVPVSIYLVNGIKLQGQVESFDQFVIL-------LK 5A0Q0M9,-----MNKSTNNLQDLFLNNARINRISVTIFLTNGYKLEGLVKGFDNFTII-------LD 6A0Q6S3,-----MSRISS-LQDPFLNALRKEKVSVSVYLVNGIKLQGQVEAFDQFCIV-------LR
補足情報(FW/ツールのバージョンなど)
macOS10.15.4 Python3.7.3 Atom