剛剛掌握一切的Python新手。我正在尋找替換我的數據中重複出現的字符串的一部分。我懷疑正則表達式會成爲答案,但是對於python來說,這是一個新的問題,我正在努力爭取一些正確的答案。Python取代了變化的字符串的一部分
我的文本示例是這個「PROD v2.0 - 測試窗口 - 應用程序」。隨着開發人員引入新窗口,PROD v2.0將更改爲v3.0等等。我想要做的是刪除整個第一部分,並離開只是「測試窗口 - 應用程序」
我已經加載了我正在使用的腳本中正在發生的其他事情,所以我會理想地尋找協助在哪裏放置這個。
以下是我到目前爲止的腳本。我已經刪除了某些方面,因爲這是針對某個工作項目和我無法分享的某些部分。任何幫助都將得到大規模的讚賞,我知道我的腳本可能寫得不好,我正在開發的這個項目很快就會到期,我只是想在這個階段獲得這個功能。
import pandas as pd
data_xls = pd.read_excel('REMOVED.xls', 'Sheet1', index_col=None)
data_xls.to_csv('//REMOVED.csv', encoding='utf-8')
import codecs
import pandas as pd
import os
#import dataset
from datetime import datetime as dt
targetDir = 'REMOVED'
outputFile = 'UPLOADSTEP1.txt'
substitutions = COLUMN SUBS REMOVED
selectCols = [COLUMN ORDER REMOVED]
first = True
# Set working directory
os.chdir(targetDir)
# Iterate thorugh all files in directory
for i in os.listdir(os.getcwd()):
if i.endswith('.csv') and i.startswith('Temp'):
print (i);
# Files are UTF-8 encoded with BOM which Pandas cannot handle. Open with coedcs first before passing to Pandas
opened = codecs.open(i, 'rU', 'UTF-8')
# Read file into dataframe
df = pd.read_csv(opened, header=0)
# Replace headers
for row in substitutions:
if row[0] in df.columns:
df.rename(columns={row[0]:row[1]}, inplace=True)
print(row[0], '->', row[1])
# Save to csv
if first:
# print("First section")
# First file save, retain headers and overwrite previous
# destFile = open(outputFile, 'w')
df.to_csv(outputFile, columns=selectCols, header=True, index=False, low_memory=False, sep='\t')
first = False
else:
# print("Subsequent section")
# Not first file save, remove headers and append to previous
destFile = open(outputFile, 'a')
df.to_csv(destFile, columns=selectCols, header=False, index=False, low_memory=False, sep='\t')
continue
# Symbol Cleanse
f1 = open('UPLOADSTEP1.txt', 'r')
f2 = open('UPLOADSTEP2.txt', 'w')
for line in f1:
f2.write(line.replace(' â€「 ', ' '))
f1.close()
f2.close()
我沒有看到你的代碼中的任何東西給我一個線索,代替將去。但總的來說,我可能會使用're'模塊。說你想把所有東西都替換成第一個「 - 」而沒有任何東西,這是否公平? – eddiem
對不起,我現在的代碼中沒有任何與之相關的代碼,因爲我對於放置在哪裏有點遺憾。我想擺脫整個PROD和版本號加上連字符。我想刪除的文本只出現在我的數據集中的某些列中。正如我所說的版本號碼不斷變化,所以它需要處理:) – nohholmez