필드가 부분적으로 다른 필드와 일치하는 경우 CSV 파일에서 행을 삭제하려고합니다. 예를 들어필드가 부분적으로 다른 필드와 일치하는 경우 CSV에서 행 삭제
:
serial book name author
1. Ramakrishna Kathamrita Vol1 Sri M
2. Ramakrishna Kathamrita Vol2 Sri M
3. Ramakrishna Kathamrita Vol3 Sri M
나는이 세 가지에 대해 하나의 항목을 가지고 싶습니다. 반환 만하면됩니다 :
우리가 파이썬에서이 작업을 수행 할 수있는 방법이 있습니까?
편집 : (29-12-2017 17시 5분) 불분명 한 것에 대해 죄송
.
다음과 같은 기준을 설정할 수 있습니다. 책 이름은 n
단어가있는 경우
- , 적어도 처음
n-1
단어가 일치해야합니다. 1.
이 만족되면 사용자에게 질문 할 때 행을 삭제합니다.
는 생각은 크게 이것이다 : 우리가 1) 를 CSV 2) 에 대한 달성 어떻게 지금
def word_count(string):
tokens = string.split()
n_tokens = len(tokens)
return n_tokens
:
my_string1 = "Ramakrishna Kathamrita Vol1"
my_string2 = "Ramakrishna Kathamrita Vol2"
splitted1 = my_string1.split()
splitted2 = my_string2.split()
if(splitted1[0] = splitted2[0] & splitted1[1] = splitted2[1])
then ask the user whether to delete the row;wait for 'y/n'
우리는 또한 단어 수를 얻을 수 있습니다 묻는 즉시 행을 삭제하십시오?
지금까지 해보신 것은 무엇입니까? – RoadRunner
"부분 일치"의 기준은 무엇입니까? 일단 CSV 열을 그룹화하고 사전 (또는'collections.defaultdict')을 사용하거나 필요에 따라'itertools.groupby()'를 사용할 수 있습니다. – mhawke
수정 됨. 희망의 질문은 지금 분명하다. –