私の入力csvファイルをpandas(df_input)で読み込み、リスト内の変数にre.findallを使用するコードを記述しようとしています。このリストは、別の.csvファイルからインポートされます。列[0](df_expression)にはコードで検索する変数が含まれ、列[1](df_translation)には完全一致が返されるコードが含まれます。こうして、「ブルゴーニュ」や「マルーン」のような色を検索すると、「赤」に変換されます。私はこの設定を試していたので、コード自体を変更することなく、式の翻訳を変更することができます。re.findallで適切な出力が得られません
Name,Color
a black car,['Black']
a white paper,['White']
the sky is blue,['Blue']
this product is burgundy and black,['Red, Black']
just pink,['Pink']
優先output.csv:df_input.to_csv(ファイルパス+ファイル名)の後に、私のoutput.csvに見られるような
resultlist
[['Black'], ['White'], ['Blue'], ['Red', 'Black'], ['Pink'], .....
電流出力:
df_name = df_input[0]
def expression(expr, string):
return True if len(re.findall(r'\b' + expr + r'\b', string, re.I)) > 0 else False
resultlist = []
for lineIndex in range(0, len(df_input)):
matches_list = []
for expIndex in range(0, len(df_expressions)):
if expression(str(df_expressions.ix[expIndex]), str(df_name.ix[lineIndex])):
matches_list.append(df_translation.ix[expIndex])
df_input['Color'] = resultlist
これらは、戻り値であり、 :
Name,Color
a black car,Black
a white paper,White
the sky is blue,Blue
this product is burgundy and black,Red;Black
just pink,Pink
df_input.to_csv(filepath + filename)を実行するたびに大括弧と引用符を失う可能性はありますか? 私はdf.replace()を試しました - うまくいかず、私のre.findallの終わりに[0]が追加されず、他のものもたくさんあります。仕事をしているように見えるのはstr(resultlist).replace()ですが、インデックスとマッチの組み合わせがかなり乱雑です。助言がありますか?
にresultlessを変換する必要があります
で
を交換して実行可能なコードを投稿してください。スニペットだけではありません。 – Saleem