1
2つのデータフレームの会社名のマッチング(一種のファジーマッチング)を行っています。そのためには、最初に、開始アルファベットが一致するすべての会社名を完全にマージしています。つまり、「A」で始まるすべての企業は、他のデータフレームで「A」で始まるすべての企業と一致します。これは、次のように行われます。パンダの機能が含まれています
df1['df1_Start'] = df1['company1'].astype(str).str.slice(0,2)
df2['df2_Start'] = df2['company2'].astype(str).str.slice(0,2)
Merge = pd.merge(df1,df2, left_on='df1_Start',right_on='df2_Start')
は今、私はDF1で、同社がDF2で会社が含まれていFullMergeからすべての行を持っていると思います。これは、df1の企業が細長い名前を持つためです。
Merge1=Merge[Merge['company1'].str.contains(Merge['company2'].str)]
これは私にとっては機能しません。このタスクを実行するにはどうすればよいですか?また、会社名と一致させるために他にどのような方法を使用することを提案してください。企業は2つのデータフレームで同じであるかもしれないが、まったく同じ方法で書かれていないからです。
ありがとう!どのように私はこれを変更することができますcompany1は、最初のcompany2のみを含む必要がありますが、中央のどこかに?上記は私にかなりの誤認を与えているからです。 – ComplexData
あなたは '^' - regex startが必要だと思います。-Merge1 = Merge [FullMerge ['company1']。str.contains( "|" .join(Merge ['^' + 'company2']。tolist() )] '' – jezrael