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

Python 不合并的两个数据帧之间的父子关系

Python 不合并的两个数据帧之间的父子关系,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试在两个数据帧之间创建父子关系: df_5: df_4: 以下是我正在使用的代码: df_5.loc[df_5.Tag_Name.isin(df_4.Tag_Name), ['parent']] = df_4[['parent']] 这应该是匹配df_5的Tag_Name列中的值,在df_4中找到它,然后从df_4返回它在df_5中的父值。如上例所示,当行数较多时,这行代码将失败 这里的电流输出如下所示,这是不正确的 df_5: 理想的预期产出应为: df_5: 在这种情况下,是否有一

我正在尝试在两个数据帧之间创建父子关系:

df_5:

df_4:

以下是我正在使用的代码:

df_5.loc[df_5.Tag_Name.isin(df_4.Tag_Name), ['parent']] = df_4[['parent']]
这应该是匹配df_5的Tag_Name列中的值,在df_4中找到它,然后从df_4返回它在df_5中的父值。如上例所示,当行数较多时,这行代码将失败

这里的电流输出如下所示,这是不正确的

df_5:

理想的预期产出应为:

df_5:


在这种情况下,是否有一个线性代码可以工作?我希望在不使用pd.merge的情况下简化解决方案,这将为我提供正确的值。

您不想使用merge有什么原因吗?您可以将特定列合并到一行中,以提供所需内容。这是您需要的:
pd.merge(df_5[['Tag_Name']],df_4,how='left',on='Tag_Name')
@DavidErickson谢谢。我避免了pd.merge以减少代码中的行数,因为这将在不同级别重复多次。如果没有其他选项,将执行此操作。您也可以使用functools一次执行多个pd合并:
    Tag_Name    parent
0   Mkt34       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
1   Mkt29       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
2   Mkt35       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
3   Mkt30       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
4   Mkt32       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
5   Mkt31       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
6   Mkt36       edfff48b-a9d6-4c56-84c3-0fb8dab9b88f
7   Mkt38       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
8   Mkt39       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
9   Mkt33       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
10  Mkt40       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
11  Mkt37       1fabfd31-f6aa-4061-a692-35bf6d19c9ae
df_5.loc[df_5.Tag_Name.isin(df_4.Tag_Name), ['parent']] = df_4[['parent']]
    parent                                  Tag_Name
0   1fabfd31-f6aa-4061-a692-35bf6d19c9ae                Mkt30
1   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt31
2   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt36
3   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt37
    parent                                  Tag_Name
0   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt30
1   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt31
2   edfff48b-a9d6-4c56-84c3-0fb8dab9b88f                Mkt36
3   1fabfd31-f6aa-4061-a692-35bf6d19c9ae                Mkt37