【发布时间】:2020-05-03 16:36:07
【问题描述】:
我有一个包含列表的列的数据框,我正在尝试遍历数据框中的每一行并与该行的列表中的每个元素连接。我正在尝试编写代码以实现“分子物种”中显示的结果。对此的任何想法将不胜感激。
数据框 =
import pandas as pd
df = pd.DataFrame({'molecule': ['a',
'b',
'c',
'd',
'e'],
'species' : [['dog'],
['horse','pig'],
['cat', 'dog'],
['cat','horse','pig'],
['chicken','pig']]})
我试图通过迭代行和列表元素来创建新列,将“分子”与“物种”中包含的列表中的每个元素连接起来。
df['molecule_species'] = [['a dog'],
['b horse','b pig'],
['c cat', 'c dog'],
['d cat','d horse','d pig'],
['e chicken','e pig']]
【问题讨论】:
-
所有解决方案都能满足您的需求,但正如您所见,它们在某些时候都需要对行进行循环。 pandas 并不意味着存储复杂的对象,如列表,通常处理 pandas 中对象的最高效方法是远离 pandas(Andy L. 的解决方案)。似乎您需要的所有信息都可以在
df.explode('species')获得,并且该格式更适合以后使用 pandas 进行操作。