Python:在列表的一列上合并两个数据帧

Python:在列表的一列上合并两个数据帧,python,pandas,dataframe,merge,jupyter,Python,Pandas,Dataframe,Merge,Jupyter,我需要根据一列名为“authors”的列表找到两个数据帧之间的交集 但是我得到了这个错误 您不能在列表上合并,因为列表不能散列,请参阅。一种选择是通过将列表转换为字符串并在其上合并来创建附加列,例如: df['authors_as_string'] = df['authors'].apply(lambda x: "-".join(x)) 这将产生: id authors authors_as_string 0 1 [a, b, c] a-b-c 1 2

我需要根据一列名为“authors”的列表找到两个数据帧之间的交集

但是我得到了这个错误

您不能在列表上合并,因为列表不能散列,请参阅。一种选择是通过将列表转换为字符串并在其上合并来创建附加列,例如:

df['authors_as_string'] = df['authors'].apply(lambda x: "-".join(x))
这将产生:

   id    authors authors_as_string
0   1  [a, b, c]          a-b-c
1   2  [a, b, c]          a-b-c
2   3     [a, b]            a-b
3   4     [a, c]            a-c
然后你可以合并到第三列


或者,您可以尝试在该问题中发布的其他解决方案。

您无法在列表中合并,因为列表无法散列,请参阅。一种选择是通过将列表转换为字符串并在其上合并来创建附加列,例如:

df['authors_as_string'] = df['authors'].apply(lambda x: "-".join(x))
这将产生:

   id    authors authors_as_string
0   1  [a, b, c]          a-b-c
1   2  [a, b, c]          a-b-c
2   3     [a, b]            a-b
3   4     [a, c]            a-c
然后你可以合并到第三列


或者,您可以尝试该问题中发布的其他解决方案。

您需要向我们展示您所尝试的。尽可能地将代码和错误粘贴到这里,而不是提供屏幕截图。让我们帮助您变得容易,您可能会看到更多的答案。您需要向我们展示您的尝试。尽可能地将代码和错误粘贴到这里,而不是提供屏幕截图。让我们帮助您变得容易,您可能会看到更多的答案。