Python 了解熊猫是如何加入的
谁能给我解释一下这个结果吗?特别是,我不知道结果中的Python 了解熊猫是如何加入的,python,pandas,join,dataframe,Python,Pandas,Join,Dataframe,谁能给我解释一下这个结果吗?特别是,我不知道结果中的NaNs来自哪里。另外,我不知道在这种情况下,join将如何决定匹配哪一行 left_df = pd.DataFrame.from_dict({'unique_l':[0, 1, 2, 3, 4], 'join':['a', 'a', 'b','b', 'c'] }) right_df = pd.DataFrame.from_dict({'unique_r':[10, 11, 12, 13, 14], 'join':['a', 'b', 'b'
NaN
s来自哪里。另外,我不知道在这种情况下,join
将如何决定匹配哪一行
left_df = pd.DataFrame.from_dict({'unique_l':[0, 1, 2, 3, 4], 'join':['a', 'a', 'b','b', 'c'] })
right_df = pd.DataFrame.from_dict({'unique_r':[10, 11, 12, 13, 14], 'join':['a', 'b', 'b','c', 'c'] })
join unique_l
0 a 0
1 a 1
2 b 2
3 b 3
4 c 4
join unique_r
0 a 10
1 b 11
2 b 12
3 c 13
4 c 14
print left_df.join(right_df, on='join', rsuffix='_r')
join unique_l join_r unique_r
0 a 0 NaN NaN
1 a 1 NaN NaN
2 b 2 NaN NaN
3 b 3 NaN NaN
4 c 4 NaN NaN
join
方法使用索引。您需要的是合并
:
In [6]: left_df.merge(right_df, on="join", suffixes=("_l", "_r"))
Out[6]:
join unique_l unique_r
0 a 0 10
1 a 1 10
2 b 2 11
3 b 2 12
4 b 3 11
5 b 3 12
6 c 4 13
7 c 4 14
是一个相关的(但在我看来,不是完全重复的)问题,它更详细地解释了
join
和merge
之间的区别。一般来说,join
最好通过索引连接,而merge
最好通过列连接。