Python:如何在一个对象变量中用逗号分隔字符串值来拆分不同大小的列表?

Python:如何在一个对象变量中用逗号分隔字符串值来拆分不同大小的列表?,python,data-analysis,Python,Data Analysis,我是python和数据分析的初学者,我无法解决以下问题 假设我有一个object类型的变量,它具有以下内容: 0 [Julian Sims] 1 [Bernard Gillis] 2 [Damien Bell, Desmen Noble, Herman Seagers, La... 3 [Stac

我是python和数据分析的初学者,我无法解决以下问题

假设我有一个object类型的变量,它具有以下内容:

0                                             [Julian Sims]
1                                          [Bernard Gillis]
2         [Damien Bell, Desmen Noble, Herman Seagers, La...
3         [Stacie Philbrook, Christopher Ratliffe, Antho...
4         [Danielle Imani Jameison, Maurice Eugene Edmon...
5         [Rebeika Powell, Kayetie Melchor, Misty Nunley...
6         [Greg Griego, Sara Griego, Zephania Griego, Ja...
7                                                        []
8                                                        []
9                                           [Deshaun Jones]
10                                        [Demetrius Davis]
...
...
...
['0                                             [Julian Sims]\n1                                          [Bernard Gillis]\n2         [Damien Bell',
 ' Desmen Noble',
 ' Herman Seagers',
 ' La...\n3         [Stacie Philbrook',
 ' Christopher Ratliffe',
 ' Antho...\n4         [Danielle Imani Jameison',
 ' Maurice Eugene Edmon...\n5         [Rebeika Powell',
 ' Kayetie Melchor',
 ' Misty Nunley...\n6         [Greg Griego',
 ' Sara Griego',
 ' Zephania Griego',
 ' Ja...\n7                                                        []\n8                                                        []\n9                                           [Deshaun Jones]\n10                                        [Demetrius Davis]
有200000多行,大小不一

我想做的是看看是否有重复的名字;显示重复的位置,并显示同一行中的所有其他名称

我试图将每个名称存储在一行中的一个新变量中,以便以后进行分组,并查看是否有重复的名称,但我不确定如何重复

我尝试了下面的代码,但结果不是我想要的

names = []
row = str(name_list).split(",")
for x in row :
    names.append(x)
但我得到了以下信息:

0                                             [Julian Sims]
1                                          [Bernard Gillis]
2         [Damien Bell, Desmen Noble, Herman Seagers, La...
3         [Stacie Philbrook, Christopher Ratliffe, Antho...
4         [Danielle Imani Jameison, Maurice Eugene Edmon...
5         [Rebeika Powell, Kayetie Melchor, Misty Nunley...
6         [Greg Griego, Sara Griego, Zephania Griego, Ja...
7                                                        []
8                                                        []
9                                           [Deshaun Jones]
10                                        [Demetrius Davis]
...
...
...
['0                                             [Julian Sims]\n1                                          [Bernard Gillis]\n2         [Damien Bell',
 ' Desmen Noble',
 ' Herman Seagers',
 ' La...\n3         [Stacie Philbrook',
 ' Christopher Ratliffe',
 ' Antho...\n4         [Danielle Imani Jameison',
 ' Maurice Eugene Edmon...\n5         [Rebeika Powell',
 ' Kayetie Melchor',
 ' Misty Nunley...\n6         [Greg Griego',
 ' Sara Griego',
 ' Zephania Griego',
 ' Ja...\n7                                                        []\n8                                                        []\n9                                           [Deshaun Jones]\n10                                        [Demetrius Davis]
我正在尝试创建一个图表,以显示在重复任何连接时,谁彼此连接

如果有更好的方法,请告诉我

非常感谢


假设
name\u list
是全文,我会使用

lines=[line[line.find('[')+1:line.find(']')].split(',')用于名称列表中的行]
以列表的形式获取每行中的名称。这将找到开始括号,然后将字符串从该括号分割到结束括号,并用逗号分割内容。
要访问第四行中的名称(从零开始索引,如在名称列表中)

>>行[4]
['Danielle Imani Jameison','Maurice Eugene Edmon…']
我不确定我是否理解你的意图,但如果你再多解释一点,我很乐意帮助你

编辑:

name_list='''0[Julian Sims]
1[伯纳德·吉利斯]
2[达米恩·贝尔,德斯曼·诺布尔,赫尔曼·西格斯,洛杉矶…]
3[斯塔西·菲尔布鲁克,克里斯托弗·拉特利夫,安托…]
4[Danielle Imani Jameison,Maurice Eugene Edmon…]
5[丽贝卡·鲍威尔、凯蒂·梅尔乔、米斯蒂·努利……]
6[Greg Griego,Sara Griego,Zephania Griego,Ja…]
7                                                        []
8[萨拉·格里戈]
9[德尚·琼斯]
10[Demetrius Davis]''。拆分('\n')
lines=[[name.strip()表示第[line.find('[')+1:line.find(']')]行中的名称。拆分(',')]表示名称列表中的行]
name=[name.strip()表示行中的行,表示行中的名称,如果名称为]
seen=set()
dups=set(如果名称在SEED或SEED.add(名称)中,则名称在名称中的名称)
如果len(dups)==0:打印(“无副本”)
信息={name:[]用于dups中的名称}
对于范围内的i(len(行)):
对于DUP中的名称:
如果名称在第[i]行中:信息[name]。追加(i)
打印(信息)
我稍微修改了您提供的数据样本,使其包含一个副本,并且每行都有一个结束括号(我假设实际数据是这样的)。这段代码打印一个包含任何重复名称的对象,以及它们出现的行。示例数据的结果是
{'Sara Griego':[6,8]}
,这似乎就是您要寻找的?如果您希望使用两个名称列表而不是两个行号,可以将外部
for
循环更改为:

对于行中的行:
对于DUP中的名称:
如果名称在第行中:信息[名称]。追加(第行)

如果此处有任何内容与您的想法不符,请告诉我。

请提供预期输出的示例。您正在将行转换为字符串,该字符串将转换“[”、“]”和换行符。使用join方法按所选字符连接列表中的元素<代码>“,”。加入(世界其他地区),但正如Jab所说,请提供预期的输出。那么您在这里需要的确切帮助是什么?如何提取每一行,以便用逗号进一步拆分?或者甚至如何解决查找重复的整个问题?嗨,伙计们,谢谢你们的帮助,我在第一个解决方案中给出了评论,如果需要更多澄清,请告诉我!嗨,肖恩,我正在处理枪支犯罪数据,这是我在学校的“顶点”项目的主题。我试图应用任何机器学习模型,但根据我的数据的性质,我无法找出哪一种。图形模型是一个观察是否有人卷入多起持枪事件的想法,并用该事件显示所有其他人的姓名。我不确定是否有复制品,因为他们可能在监狱里,也可能已经死了。所以在尝试任何东西之前,我想先确定有重复的。所以我想创建一个每行有一个名称的列表,然后做一个值_counts,….CONTif没有重复的名称;对于我来说,试图找出这个数据集上的图形模型是没有意义的。我在网上找到的资源不能帮助我处理这个数据集,但我仍然相信我能做到。我真的很感谢你的帮助:)我已经用我希望是你正在寻找的代码更新了答案。祝项目顺利!谢谢你,肖恩!这正是我想要的输出。我试着修改代码,比如:name\u list=Full\u list.split('\n')我得到了一个错误:“Series”对象没有属性“split”Full\u list有超过200000条我应该处理的记录哦,我假设你是用python的
open()
函数从文本文件中读取的。听起来你用熊猫来代替?我没有亲自使用pandas,但它看起来像是
name\u list=Full\u list。to\u list()
可能有用。如果没有,请发布该方法返回的示例。