[英]Check if column values exists in different dataframe
I have a pandas DataFrame 'df' with x rows, and another pandas DataFrame 'df2' with y rows (x < y).我有一个 pandas DataFrame 'df' 有 x 行,另一个 pandas DataFrame 'df2' 有 y 行 (x < y)。 I want to return the indexes of where the values of df['Farm'] equals the value of df2['Fields'], in order to add respective 'Manager' to df.我想返回 df['Farm'] 的值等于 df2['Fields'] 的值的索引,以便将相应的“经理”添加到 df。
the code I have is as follows:我的代码如下:
data2 = [['field1', 'Paul G'] , ['field2', 'Mark R'], ['field3', 'Roy Jr']]
data = [['field1'] , ['field2']]
columns = ['Field']
columns2 = ['Field', 'Manager']
df = pd.DataFrame(data, columns=columns)
df2 = pd.DataFrame(data2, columns=columns2)
farmNames = df['Farm']
exists = farmNames.reset_index(drop=True) == df1['Field'].reset_index(drop=True)
This returns the error message:这将返回错误消息:
ValueError: Can only compare identically-labeled Series objects ValueError:只能比较相同标记的 Series 对象
Does anyone know how to fix this?有谁知道如何解决这一问题?
As @NickODell mentioned, you could use a merge, basically a left join.正如@NickODell 提到的,您可以使用合并,基本上是左连接。 See below code.请参见下面的代码。
df_new = pd.merge(df, df2, on = 'Field', how = 'left')
print(df_new)
Output: Output:
Field Manager
0 field1 Paul G
1 field2 Mark R
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.