Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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_Concat - Fatal编程技术网

Python 巨蟒与海螺相交

Python 巨蟒与海螺相交,python,pandas,concat,Python,Pandas,Concat,我正在努力获取熊猫中两个数据帧的交集 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 N

我正在努力获取熊猫中两个数据帧的交集

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'似乎开始工作,但结果不是我真正需要的:

In [25]: pd.concat(test,axis=1,join='inner')
Out[25]: 
          0   1  2   3   4   5   6   7   0   1  2   3   4   5   6   7
User498  12  10  4 NaN NaN NaN NaN NaN  12  10  4 NaN NaN NaN NaN NaN
User499   4  23  5   9 NaN NaN NaN NaN   4  23  5   9 NaN NaN NaN NaN

[2 rows x 16 columns]

正如它应该做的那样,将数据帧内容添加到一起。为什么轴上的concat=0不起作用?如何按索引连接数据帧?

您想尝试合并
concat
更适合将多个帧粘合在一起,merge将处理重叠行的检测以及所有这些:

In [107]: df1
Out[107]: 
          index   0   1   2   3   4   5   6   7
0     0793oezim   3 NaN NaN NaN NaN NaN NaN NaN
1      Dashkent   6   7  15   4   4   1   1 NaN
2  Deniskildeev   3 NaN NaN NaN NaN NaN NaN NaN
3       Krylova   3 NaN NaN NaN NaN NaN NaN NaN
4        Ksusha  12   2   4   4 NaN NaN NaN NaN
5     Rusel1994   3 NaN NaN NaN NaN NaN NaN NaN
6     Sportsman  31   1   2   4   4 NaN NaN NaN
7       User495   6   7  15   3   4   3 NaN NaN
8       User498  12  10   4 NaN NaN NaN NaN NaN
9       User499   4  23   5   9 NaN NaN NaN NaN

[10 rows x 9 columns]

In [108]: df2
Out[108]: 
     index   0   1  2   3   4   5   6   7
8  User498  12  10  4 NaN NaN NaN NaN NaN
9  User499   4  23  5   9 NaN NaN NaN NaN

[2 rows x 9 columns]

In [109]: pd.merge(df1, df2, how='inner')
Out[109]: 
     index   0   1  2   3   4   5   6   7
0  User498  12  10  4 NaN NaN NaN NaN NaN
1  User499   4  23  5   9 NaN NaN NaN NaN

[2 rows x 9 columns]

请注意,我重置了索引(
df1.reset\u index()
)。一般来说,如果可能的话,在数据帧上有一个唯一的索引是个好主意。

我已经尝试了各种方法来解决我的问题。似乎唯一能够获得正确结果的函数是以下函数:

def dataFrameMaskSplitbyIndex(df1,df2):
    mask1 = df1.index.isin(df2.index)
    mask2 = df2.index.isin(df1.index)
    tempdf = df1[-mask1]
    dfleft = tempdf.copy()
    tempdf = df2[-mask2]
    dfright = tempdf.copy()
    tempdf = df1[mask1]
    dfcenter = tempdf.copy()
    return dfleft,dfcenter,dfright
然而,我认为可能有其他一些运行时成本较低的方法来解决我的问题。如果你有任何建议,请毫不犹豫地提出