Python:如何在一个对象变量中用逗号分隔字符串值来拆分不同大小的列表?
我是python和数据分析的初学者,我无法解决以下问题 假设我有一个object类型的变量,它具有以下内容: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
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()
可能有用。如果没有,请发布该方法返回的示例。