Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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 如何对具有相同行数但没有匹配列名的2个数据帧执行联接?_Python_Pandas_Dataframe_Data Science_Concat - Fatal编程技术网

Python 如何对具有相同行数但没有匹配列名的2个数据帧执行联接?

Python 如何对具有相同行数但没有匹配列名的2个数据帧执行联接?,python,pandas,dataframe,data-science,concat,Python,Pandas,Dataframe,Data Science,Concat,我试图在数据帧的所有特性中绘制缺失NaN值的直方图 为此,我为丢失的NaN值创建了一个数据帧 缺少值数据帧 0 ----- 0 0 1 14 2 800 . . 84 2344 0 1 --------- F1 3 3 F2 4 3 . . F85 5 2 然后我有一个主数据框,它有多个我不关心的列,因为我只需要这个数据框中的行名称 主数据帧 0 ----- 0 0 1 14 2 800 . . 84 2344 0 1 ---

我试图在数据帧的所有特性中绘制缺失NaN值的直方图 为此,我为丢失的NaN值创建了一个数据帧

缺少值数据帧

   0
-----
0  0
1  14
2  800
.
.
84 2344
     0  1
---------
F1   3  3
F2   4  3
.
.
F85  5  2
然后我有一个主数据框,它有多个我不关心的列,因为我只需要这个数据框中的行名称

主数据帧

   0
-----
0  0
1  14
2  800
.
.
84 2344
     0  1
---------
F1   3  3
F2   4  3
.
.
F85  5  2
我如何合并/连接这两个数据帧,最终输出应该是这样的(主数据帧中的列是不相关的,因为我想绘制所有特征(如F1、F2、F85)中缺失值的数量)


我们可以使用
pandas
concat
方法轻松做到这一点

`

`


您将根据您的要求获得准确的值。

我们可以通过使用
pandas
concat
方法轻松做到这一点

`

`


您将根据您的要求获得准确的值。

请确保您的数据帧是
df1
(缺少值数据帧)和
df2
(主数据帧)。然后你可以试试这个:

df1.columns=['X']
res = df2.reset_index().join(df1.reset_index(), rsuffix='_r')[['index', 'X']].set_index('index')
print(res)
结果将是:

index      
F1        0
F2       14
F3      800
...
F85    2344

其思想是使用行号替换两个数据帧中的索引,然后合并数据帧,因为您的数据帧是
df1
(缺少值的数据帧)和
df2
(主数据帧)。然后你可以试试这个:

df1.columns=['X']
res = df2.reset_index().join(df1.reset_index(), rsuffix='_r')[['index', 'X']].set_index('index')
print(res)
结果将是:

index      
F1        0
F2       14
F3      800
...
F85    2344

其思想是使用行号替换两个数据帧中的索引,然后合并数据帧。如果要水平合并两个数据帧,则不考虑具有相同行数、不同列数和索引的索引。仅从某些列中选择某些列

将熊猫作为pd导入
df1=pd.DataFrame(索引=[1,2,3],数据={“a”:[3,6,4]})
df2=pd.DataFrame(索引=[“a1”,“v2”,“x”],数据={“x”:[-3136,-5],“y”:[“x”,“y”,“c”]})
df3=pd.concat([df1.reset_index(drop=True),df2[“x”].to_frame().reset_index(drop=True)],axis=1,ignore_index=False)
输入:

#df1
A.
1  3
2  6
3  4
#df2
xy
a1-3 x
v2 136 y
x-5 c
输出:

#df3
a x
0  3   -3
1  6  136
2  4   -5

IIUC您希望水平合并2个数据帧,而不考虑具有相同行数、不同列数和索引数的索引。仅从某些列中选择某些列

将熊猫作为pd导入
df1=pd.DataFrame(索引=[1,2,3],数据={“a”:[3,6,4]})
df2=pd.DataFrame(索引=[“a1”,“v2”,“x”],数据={“x”:[-3136,-5],“y”:[“x”,“y”,“c”]})
df3=pd.concat([df1.reset_index(drop=True),df2[“x”].to_frame().reset_index(drop=True)],axis=1,ignore_index=False)
输入:

#df1
A.
1  3
2  6
3  4
#df2
xy
a1-3 x
v2 136 y
x-5 c
输出:

#df3
a x
0  3   -3
1  6  136
2  4   -5


我看不出任何东西是如何在output@yatu第一列似乎来自第二个数据帧(我假设是它的索引)。尽管您可以尝试稍微改进一下格式,以便更容易理解和复制Shalin。当然@CeliusStingher,请重新格式化。希望现在可以阅读..正确,a)来自数据框2的特征(本例中的行)b)在数据框1中确定并显示的缺失值需要显示在合并的数据框中。。最后,我将转置合并后的数据帧,使用F1、F2、…F85绘制直方图,转置后这些列将成为列。希望这是合理的。您的意思是希望结果数据帧具有来自第二个数据帧(主数据帧)的索引和来自第一个数据帧(缺少值数据帧)的值吗?换句话说,您希望通过行号连接,对吗?是的,但是正如您所看到的,两个数据帧中的行名称没有公共性。因此,基本上,我想将数据帧1叠加到数据帧2上,这样丢失的值编号将逐行对应于合并的数据帧中的行名称(F1、F2…F85)。这可能吗?我看不出在output@yatu第一列似乎来自第二个数据帧(我假设是它的索引)。尽管您可以尝试稍微改进一下格式,以便更容易理解和复制Shalin。当然@CeliusStingher,请重新格式化。希望现在可以阅读..正确,a)来自数据框2的特征(本例中的行)b)在数据框1中确定并显示的缺失值需要显示在合并的数据框中。。最后,我将转置合并后的数据帧,使用F1、F2、…F85绘制直方图,转置后这些列将成为列。希望这是合理的。您的意思是希望结果数据帧具有来自第二个数据帧(主数据帧)的索引和来自第一个数据帧(缺少值数据帧)的值吗?换句话说,您希望通过行号连接,对吗?是的,但是正如您所看到的,两个数据帧中的行名称没有公共性。因此,基本上,我想将数据帧1叠加到数据帧2上,这样丢失的值编号将逐行对应到行名称(F1、F2…F85)在合并的数据框中..这可能吗?如果不清楚,很抱歉..我做了一些编辑..没有匹配的列,这就是为什么我不能简单地执行Concat的原因您可以在上面的代码中更改列名,然后还可以获得准确的输出。我知道了,但即使这样,仍然会在匹配的行名上进行连接(而不是行号),这不在我的问题中。如果你看到下面Stepan的解决方案涉及重置索引,它解决了目的。在上面的回答中,你必须导入
pandas
library,然后它将解决问题。当然,Vijayant。pandas库需要导入,但我说的是,问题不同。如果你看,这不是简单的连接在我的初始问题和Stepan提供的解决方案中…请再次查看..您的解决方案将在匹配列上进行内部联接,如果不清楚,这不是asksorry..我进行了一些编辑..没有匹配列