Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 如何重新排列数据帧的顺序以匹配第二个数据帧的顺序?

Python 如何重新排列数据帧的顺序以匹配第二个数据帧的顺序?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,例如,如果我有两个数据帧: df1: df2: 我希望df2匹配顺序,匹配共同的值,但在顺序之后保留不匹配的值,我如何使用pandas实现这一点?或者别的什么 期望输出: 新的"基本法": x y 0 1.1 2.1 1 3.1. 5.1 2 0.0 2.2 3 3.0 6.6 4 0.2 8.8 第2-4行我不关心顺序,只要匹配的行遵循与df1相同的顺序。我希望df1和df2的索引值相等 有办法吗 对不起,如果我提交的方式是错误的 谢谢大家仅使用合并和指示符作

例如,如果我有两个数据帧:

df1:

df2:

我希望df2匹配顺序,匹配共同的值,但在顺序之后保留不匹配的值,我如何使用pandas实现这一点?或者别的什么

期望输出:

新的"基本法":

    x    y
0  1.1  2.1
1  3.1. 5.1
2  0.0  2.2
3  3.0  6.6
4  0.2  8.8
第2-4行我不关心顺序,只要匹配的行遵循与df1相同的顺序。我希望df1和df2的索引值相等

有办法吗

对不起,如果我提交的方式是错误的


谢谢大家

仅使用
合并
指示符
作为默认排序

df1.merge(df2,indicator=True,how='right')
Out[354]: 
     x    y      _merge
0  1.1  2.1        both
1  3.1  5.1        both
2  0.0  2.2  right_only
3  3.0  6.6  right_only
4  0.2  8.8  right_only

请看.combine_first和.update方法

df1.combine_first(df2)

它们在。

使用
pd.concat
删除重复项中进行了解释:

 pd.concat([df1,df2]).drop_duplicates().reset_index(drop=True)
输出:

     x    y
0  1.1  2.1
1  3.1  5.1
2  0.0  2.2
3  3.0  6.6
4  0.2  8.8

唯一的问题是,由于某些原因(不确定原因),它会在末尾添加一行。有什么建议吗?@BVOM您需要检查重复的行,您这边的df2和df1是否有重复的行这将按索引重新创建行…他需要值匹配,检查您的输出,您有3.1和5.1的重复行
 pd.concat([df1,df2]).drop_duplicates().reset_index(drop=True)
     x    y
0  1.1  2.1
1  3.1  5.1
2  0.0  2.2
3  3.0  6.6
4  0.2  8.8