尝试合并一个 Dataframe 时,有多个值的列,我合并?
我正试图合并两个 Dataframe 的一个列有列表条目。如果列表中的任何值匹配,我希望合并发生。例如,我有一个dataframe,它看起来如下所示:
| 色谱柱A| B柱|
| - -----|- -----|
| a| [val1,val2,val3]|
| B| [val4,val5]|
我的目标是将它合并到列B上的dataframe中,如下所示
| 色谱柱C| D列|
| - -----|- -----|
| x| val1|
| y| val4|
我想要的结果是
| 色谱柱A| D列|色谱柱C|
| - -----|- -----|- -----|
| a| val1| x|
| B| val4| y|
我无法单独使用Pandas来实现这一点,并且想知道是否需要编写自己的函数来执行这种类型的合并。
3条答案
按热度按时间vngu2lb81#
在本例中,看起来您需要在合并之前进行一些预处理。本质上,您希望取消列出列表中的元素,并为列表中的每个元素设置一行。完成此步骤后,您应该能够使用标准的
merge
操作。下面是一个粗略的例子,说明如何在Python中使用pandas来实现这一点:
此代码将为
df1['Column B']
中列表中的每个元素创建一个新行。然后,它将df1
与df2
合并,其中分解的Column B
与Column D
匹配。最后,它通过删除不必要的列并重命名剩余的列来清理生成的DataFrame。i2loujxw2#
试试这个:
b4lqfgs43#
一个示例,该示例合并了包含列表条目的列上的两个 Dataframe ,并与列表中的任何值匹配