加入两个 Pandas 数据框时出现问题
Problems joining two Pandas Dataframes
我正在尝试通过 Rest API 创建我在 Trello 中拥有的卡片的报告,我需要在同一份报告中显示卡片数据和分配给每张卡片的成员姓名.
问题是Trello JSON 很繁琐,需要多次查询,然后合并不同的数据框。
我目前卡住了,正在尝试将卡片成员姓名添加到主卡片数据框中。
我正在向您发送问题摘要:
我已经创建了主数据框(trello_dataframe
),其中我有来自 Trello 的卡片级别信息,包括“ID 成员”列(trello_dataframe['ID Members']
,以列表形式,这是我需要的与另一个数据框合并。
关于 trello_dataframe
的更多信息:https://prnt.sc/boC6OL50Glwu
第二个数据框 (df_response_members
) 来自董事会成员级别的查询,其中我有 3 列(ID 成员 (df_response_members['ID Members']
)、全名 (df_response_members['Member (Full Name)']
) , 和用户名 (df_response_members['Member (Username)']
).
关于“df_response_members”的更多信息:https://prnt.sc/x6tmzI04rohs
现在我想合并这两个数据框,按df_response_members['ID Members']
分组,这样卡片数据框中就会出现卡片成员的全名和用户名(这是主要的)。
当我尝试使用以下代码合并两个数据框时出现问题,我收到错误
TypeError: unhashable type: 'list'.
在
trello_dataframe = pd.merge(df_response_members,trello_dataframe, on="ID Members", how='outer')
这是我希望查看主数据框的方式:https://prnt.sc/7PSTmG2zahZO
提前致谢!
您不能这样做有两个原因:A) 正如错误所说,列表不可哈希,并且 DataFrame 操作通常不适用于不可哈希的数据类型,并且,B) 您正在尝试合并list
列和 string
列。两种列类型应该相同才能执行合并。
一个解决方案可能是首先在你的第一个 DataFrame trello_dataframe
上使用 'ID Members'
列使用 DataFrame.explode()
(https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html),这将为每个数据框生成一个独立的行'ID Member' 在每个列表上。现在您可以执行与此 DataFrame 的合并。
要转换回您想要的格式,您可以使用 GroupBy,如下所述:。
我正在尝试通过 Rest API 创建我在 Trello 中拥有的卡片的报告,我需要在同一份报告中显示卡片数据和分配给每张卡片的成员姓名.
问题是Trello JSON 很繁琐,需要多次查询,然后合并不同的数据框。
我目前卡住了,正在尝试将卡片成员姓名添加到主卡片数据框中。
我正在向您发送问题摘要:
我已经创建了主数据框(trello_dataframe
),其中我有来自 Trello 的卡片级别信息,包括“ID 成员”列(trello_dataframe['ID Members']
,以列表形式,这是我需要的与另一个数据框合并。
关于 trello_dataframe
的更多信息:https://prnt.sc/boC6OL50Glwu
第二个数据框 (df_response_members
) 来自董事会成员级别的查询,其中我有 3 列(ID 成员 (df_response_members['ID Members']
)、全名 (df_response_members['Member (Full Name)']
) , 和用户名 (df_response_members['Member (Username)']
).
关于“df_response_members”的更多信息:https://prnt.sc/x6tmzI04rohs
现在我想合并这两个数据框,按df_response_members['ID Members']
分组,这样卡片数据框中就会出现卡片成员的全名和用户名(这是主要的)。
当我尝试使用以下代码合并两个数据框时出现问题,我收到错误
TypeError: unhashable type: 'list'.
在
trello_dataframe = pd.merge(df_response_members,trello_dataframe, on="ID Members", how='outer')
这是我希望查看主数据框的方式:https://prnt.sc/7PSTmG2zahZO
提前致谢!
您不能这样做有两个原因:A) 正如错误所说,列表不可哈希,并且 DataFrame 操作通常不适用于不可哈希的数据类型,并且,B) 您正在尝试合并list
列和 string
列。两种列类型应该相同才能执行合并。
一个解决方案可能是首先在你的第一个 DataFrame trello_dataframe
上使用 'ID Members'
列使用 DataFrame.explode()
(https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html),这将为每个数据框生成一个独立的行'ID Member' 在每个列表上。现在您可以执行与此 DataFrame 的合并。
要转换回您想要的格式,您可以使用 GroupBy,如下所述: