Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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_Append_Comparison - Fatal编程技术网

如何在Python中比较两(2)个不相等的数据帧,并将元素从一个分配到另一个?

如何在Python中比较两(2)个不相等的数据帧,并将元素从一个分配到另一个?,python,pandas,dataframe,append,comparison,Python,Pandas,Dataframe,Append,Comparison,我是python初学者,我有这个问题。我定义了以下两个数据集 df1 = pd.DataFrame(np.array([10, 20, 30]), columns=['number1']) df1 number1 0 10 1 20 2 30 df2 = pd.DataFrame(np.array([[5, 6, 10, 12, 20, 25, 30, 50], [12.3, 15.5, 17.8, 19.0,

我是python初学者,我有这个问题。我定义了以下两个数据集

df1 = pd.DataFrame(np.array([10, 20, 30]),
               columns=['number1'])
df1
       number1
0       10
1       20
2       30


df2 = pd.DataFrame(np.array([[5, 6, 10, 12, 20, 25, 30, 50], [12.3, 15.5, 17.8, 19.0, 25, 18, 18.4, 15.8], [15.3, 18.5, 17.8, 11.0, 28, 17, 19.5, 11.1]]),
                   index=['number1', 'start', 'end']).T
df2
   number1  start   end
0      5.0   12.3  15.3
1      6.0   15.5  18.5
2     10.0   17.8  17.8
3     12.0   19.0  11.0
4     20.0   25.0  28.0
5     25.0   18.0  17.0
6     30.0   18.4  19.5
7     50.0   15.8  11.1
我想做的是将
start
end
列添加到
df1
数据框中,其中包含
df2
的相应元素。(当且仅当number1==number1)。预期输出如下:

   number1  start   end
0     10.0   17.8  17.8
1     20.0   25.0  28.0
2     30.0   18.4  19.5
我在
df1
中追加了两(2)个空列。 请注意,两个数据集不相等。我遵循这个解决方案。然而我得到了这个警告

def equal(df1, df2, ignore_index=True):
    if df1['number1'].values == df2['number1'].values:
        df1['start'].values = df2['start'].values
        df1['end'].values = df2['end'].values


 <ipython-input-47-7137be14ffba>:2: DeprecationWarning: elementwise comparison failed; this will raise an error in the future.
      if df1['number1'].values == df2['number1'].values:
def-equal(df1、df2、ignore_-index=True):
如果df1['number1']。值==df2['number1']。值:
df1['start'].值=df2['start'].值
df1['end'].值=df2['end'].值
:2:弃用警告:元素比较失败;这将在将来引发错误。
如果df1['number1']。值==df2['number1']。值:
你有什么建议吗?

使用
df.merge()

使用
df.merge()


您可以简单地合并两个数据帧

df1.merge(df2)

number1 start   end
0   10  17.8    17.8
1   20  25.0    28.0
2   30  18.4    19.5

您可以简单地合并两个数据帧

df1.merge(df2)

number1 start   end
0   10  17.8    17.8
1   20  25.0    28.0
2   30  18.4    19.5
您可以使用df.merge(df2)

它应该会给你寻找的答案

你可以使用df.merge(df2)

它会给你你想要的答案