Python 如何根据列表中的项目复制熊猫中的行
我有一个熊猫数据框,看起来像这样:Python 如何根据列表中的项目复制熊猫中的行,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来像这样: COL data line1 [A,B,C] 其中,数据列中的项目可以是列表,也可以是逗号分隔的元素。是否有一种简单的方式获得: COL data line1 A line1 B line1 C 我可以迭代列表并通过python手动复制行,但是有什么魔术可以做到这一点吗?关键是如何自动复制行 谢谢 您可以编写一个简单的清理函数,使其成为一个列表(假设它不是逗号列表,并且您不能简单地使用): 遍历行似乎是一个合理的选择: In
COL data
line1 [A,B,C]
其中,数据列中的项目可以是列表,也可以是逗号分隔的元素。是否有一种简单的方式获得:
COL data
line1 A
line1 B
line1 C
我可以迭代列表并通过python手动复制行,但是有什么魔术可以做到这一点吗?关键是如何自动复制行
谢谢 您可以编写一个简单的清理函数,使其成为一个列表(假设它不是逗号列表,并且您不能简单地使用): 遍历行似乎是一个合理的选择:
In [11]: pd.DataFrame([(row['COL'], d)
for d in row['data']
for _, row in df.iterrows()],
columns=df.columns)
Out[11]:
COL data
0 line1 A
1 line1 B
2 line1 C
恐怕我不认为熊猫特别适合这种操作。您可以使用
df.explode()
选项。请参阅。我相信这正是您需要的功能。行和行['COL']”从何而来?@AlexanderSupertramp在df.iterrows()中的行的列表理解。_u是该行的索引,该行是df作为一个系列的行;我需要为
语句切换两个:[(row['COL'],d)为u,df中的row.iterrows()为第['data']行中的d]
@AndyHayden,请更正您的答案。对我来说,也只有RafG答案有效。
In [11]: pd.DataFrame([(row['COL'], d)
for d in row['data']
for _, row in df.iterrows()],
columns=df.columns)
Out[11]:
COL data
0 line1 A
1 line1 B
2 line1 C