私はPythonを初めて使いました。マージは部分文字列の一致に基づいている必要があるため、2つのパンダデータフレームを結合する際に多くの問題があります。具体的には上記のように見え約10,000行があるpython部分的な文字列の一致に基づいて2つのパンダデータフレームをマージ
{ "writtenAt":"2015-01-01T18:31:01+00:00", "content":" India\u2019s banks will ramp up sales of bonds that act as capital buffers in 2015" }
:
私はdfを呼ばれるデータフレームは、このようになります持っています。私はCampNamesのデータフレームのための約500行を持って
{ "ticker":"A", "name":"Agilent Technologies Inc.", "keyword":"Agilent" }
:
は今、私はこのようになりますcompNamesと呼ばれる別のデータフレームを、持っています。
私は以下のメカニズムによってDFの一致するエントリにcompNamesからティッカー値を代入しようとしています:列全体のCompNames [「キーワード」]から任意の項目が ある場合
チェック
一致がある場合、DFのデータフレーム(egdf [「matchedName」])の別個 列と一致するワードを返す
[「コンテンツ」] DFのエントリに含まれます
複数の一致がある場合、その後、DF [「コンテンツ」]最後
の対応するエントリに一致する単語 のリストを作成DF [「matchedName」]と CompNamesを使用して、DF及びCompNamesに参加私の主要な変数
として[「キーワード」]私は今のところ持っていることである:私はこれを行うとき
# Load select company names
compNames = pd.read_csv("compNameList_LARA.txt")
compList = '|'.join(compNames['keyword'].tolist())
df['compMatch'] = df.content.str.contains(compList)
# drop unmatched articles
df = df[df['compMatch']==True]
# assign firm names
df['matchedName'] = df['content'].apply(lambda x: [x for x in compNames['keyword'].tolist() if x in df['content']])
はしかし、私は '[MATCをDFのための空のリストを取得しますhedName ']
何が間違っているのか理解できますか?とても感謝しています!!
-jin