2016-11-23 21 views
0

に参加します多くに。は、我々は2つのテーブルを持っている2パンダのデータフレーム

EventLogsテーブルに一意のイベントログを登録し、そのイベントが発生するたびに何百万ものエントリをMachine_Event_Logsに登録します。

ゴール:キャプチャされたイベントログのタイムライン全体を表示するために両方のテーブルに参加しようとしています。

パンダデータフレームでmerge()関数の複数の組み合わせを試しましたが、NaNの束または空を返します。例:

pd.merge(event_logs, machine_event_logs, how='left', left_on='id', right_on='event_log_id') 

これを解決する方法はありますか。

ありがとうございました。 idでevent_logsは整数とevent_log_idでmachine_event_logsある文字列です

答えて

2

は、あなたのデータスキーマによると、あなたは互換性のない型を持っています。 Pythonでは、文字列の平等とそれに相当する数値の利回り偽:

print('0'==0) 
# False 

は、したがって、あなたのパンダは、マージに参加残された試合が正常に検出されないので、右側にすべてのNANを返します。適切なマージのための型を揃えるために変換検討します

event_logs['id'] = event_logs['id'].astype(str) 

OR

machine_event_logs['event_log_id'] = machine_event_logs['event_log_id'].astype(int) 
+0

はこれを拾ってくれてありがとう。それは信じられないほど素晴らしいものでした。 –

関連する問題