我正在努力获得pandas中两个数据帧的交集。在
In [22]: df1[0:10]
Out[22]:
0 1 2 3 4 5 6 7
0793oezim 3 NaN NaN NaN NaN NaN NaN NaN
Dashkent 6 7 15 4 4 1 1 NaN
Deniskildeev 3 NaN NaN NaN NaN NaN NaN NaN
Krylova 3 NaN NaN NaN NaN NaN NaN NaN
Ksusha 12 2 4 4 NaN NaN NaN NaN
Rusel1994 3 NaN NaN NaN NaN NaN NaN NaN
Sportsman 31 1 2 4 4 NaN NaN NaN
User495 6 7 15 3 4 3 NaN NaN
User498 12 10 4 NaN NaN NaN NaN NaN
User499 4 23 5 9 NaN NaN NaN NaN
[10 rows x 8 columns]
In [23]: test = [df1[0:10],df1[8:10]]
In [24]: pd.concat(test,axis=0,join='inner')
Out[24]:
0 1 2 3 4 5 6 7
0793oezim 3 NaN NaN NaN NaN NaN NaN NaN
Dashkent 6 7 15 4 4 1 1 NaN
Deniskildeev 3 NaN NaN NaN NaN NaN NaN NaN
Krylova 3 NaN NaN NaN NaN NaN NaN NaN
Ksusha 12 2 4 4 NaN NaN NaN NaN
Rusel1994 3 NaN NaN NaN NaN NaN NaN NaN
Sportsman 31 1 2 4 4 NaN NaN NaN
User495 6 7 15 3 4 3 NaN NaN
User498 12 10 4 NaN NaN NaN NaN NaN
User499 4 23 5 9 NaN NaN NaN NaN
User498 12 10 4 NaN NaN NaN NaN NaN
User499 4 23 5 9 NaN NaN NaN NaN
[12 rows x 8 columns]
我只想通过索引找到2个数据帧的交集,这样结果中只出现第8行到第10行。在
当我将轴更改为1时,join='intersect'似乎开始工作,但结果不是我真正需要的:
^{pr2}$因为它将数据帧内容添加到一起。为什么concat over axis=0不起作用?如何按索引连接数据帧?在
我试过各种方法来解决我的问题。似乎只有下面的函数才能获得正确的结果:
不过,我认为可能还有其他一些运行时开销更低的方法来解决我的问题。如果你有任何建议,不要犹豫。在
你想尝试合并。
concat
更适合将多个帧粘在一起,merge将处理重叠行的检测以及所有这些:请注意,我重置了索引(
df1.reset_index()
)。一般来说,如果可能的话,最好在数据帧上建立一个唯一的索引。在相关问题 更多 >
编程相关推荐