Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 了解熊猫是如何加入的_Python_Pandas_Join_Dataframe - Fatal编程技术网

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
最好通过列连接。