簡體   English   中英

熊貓:內部聯接不返回任何行

[英]Pandas: Inner Join returns no rows

DataFrame 1( commits

CommitID  | COMMITTER  
------------------------
  1       | A         
  2       | B         
  3       | B         

DataFrame 2( files

CommitID  | MOD
------------------------
  1       | 0         
  2       | 1         
  3       | 7       

我試圖用df.merge將這些DataFrame內部連接:

files.merge(right=commits, how='inner',left_on="CommitID", right_on="CommitID")

但是,盡管列名相同,但它不返回任何行。

CommitID不同dtypes存在問題。

需要通過以下方式檢查它們:

print (files['CommitID'].dtypes)
print (commits['CommitID'].dtypes)

然后按astype轉換為相同:

#change only object
files['CommitID'] = files['CommitID'].astype(int)
commits['CommitID'] = commits['CommitID'].astype(int)

#change only int
files['CommitID'] = files['CommitID'].astype(str)
commits['CommitID'] = commits['CommitID'].astype(str)

您的代碼可以簡化-省略默認的how='inner ,僅on使用:

df = files.merge(right=commits, on="CommitID")
print (df)
   CommitID  MOD COMMITTER
0         1    0         A
1         2    1         B
2         3    7         B

或者,如果兩個DataFrames只有相同的聯接列:

df = files.merge(right=commits)
print (df)
   CommitID  MOD COMMITTER
0         1    0         A
1         2    1         B
2         3    7         B

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM