如何在Python中比较两(2)个不相等的数据帧,并将元素从一个分配到另一个?
我是python初学者,我有这个问题。我定义了以下两个数据集如何在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,
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)
它会给你你想要的答案