DataFrame 1 (commits
)
CommitID | COMMITTER
------------------------
1 | A
2 | B
3 | B
DataFrame 2 (files
)
CommitID | MOD
------------------------
1 | 0
2 | 1
3 | 7
Я попытался объединить эти DataFrames с помощью df.merge
:
files.merge(right=commits, how='inner',left_on="CommitID", right_on="CommitID")
Но он не возвращает никаких строк, хотя имя столбца идентично.
Проблема отличается от dtypes
столбца CommitID
.
Нужно проверить их:
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)
Юрский код может быть упрощен - пропустите default 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
left_index=True, right_index=True
... Предполагая, что CommitID является индексом в обеих dfs.