フィールドが部分的に他のフィールドと一致する場合、CSVファイルの行を削除したい。例えばフィールドが部分的に別のフィールドと一致する場合、CSVの行を削除する
:
serial book name author
1. Ramakrishna Kathamrita Vol1 Sri M
2. Ramakrishna Kathamrita Vol2 Sri M
3. Ramakrishna Kathamrita Vol3 Sri M
私は、これらの3つの1つだけのエントリを持っていると思います。
serial book name author
1. Ramakrishna Kathamrita Vol1 Sri M
これをPythonで実行する方法はありますか?
EDIT: (29-12-2017 17:05)は不明であるために申し訳ありません
。
以下の基準を設定することがあります。
- ブック名が
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
編集されました。質問がはっきりしたことを願っています。 –