Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据列表中的项目复制熊猫中的行_Python_Pandas - Fatal编程技术网

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