Python Pandas.read_csv带有多个分隔符,用于行和列
我试图将csv读入熊猫数据框,该数据框用括号分隔行,用逗号分隔列:“[“column1、column2等”]”。文件文本中还有双引号。例如,这将产生4列和3行Python Pandas.read_csv带有多个分隔符,用于行和列,python,pandas,Python,Pandas,我试图将csv读入熊猫数据框,该数据框用括号分隔行,用逗号分隔列:“[“column1、column2等”]”。文件文本中还有双引号。例如,这将产生4列和3行 slug,site_id,page_id,page_text "[""act"", 1, 24, ""Hi, thank you so much for RSVP'ing""]","[""act"&q
slug,site_id,page_id,page_text
"[""act"", 1, 24, ""Hi, thank you so much for RSVP'ing""]","[""act"", 1, 43, ""Thank you for taking the time to tell us why wireless matters to you!“”]”,"[""uoaa"", 2, 238, ""First published at Oregonlive.com on January 28th, 2019.“”]”
我正在尝试的代码只是把它弄得一团糟,在有逗号的地方创建一行多列。括号之间的所有内容都是一行,而一组新的括号意味着它是一个新行
df = pd.read_csv(tar.extractfile(csv_path), header=0, sep=r'\[|\]|,', quotechar='"',quoting=1, engine = 'python')
任何帮助都将不胜感激。行之间用
,
分隔,一行在“[…]”之间。
:
作为pd进口熊猫
导入ast
进口稀土
ROWS=re.compile(r''(\'{1}\[.\]\''{1}),(\'{1}\[.\]\''{1})*''
记录=[ast.literal_eval(re.sub(r'(“*)”,r'\1',行))
对于ROWS.findall中的行(打开('data.csv').read())[0]]
df=pd.DataFrame(记录)
>>df
0 1 2 3
第1幕24嗨,非常感谢你的回复
谢谢你花时间告诉我们为什么。。。
>>>df.info()
范围索引:2个条目,0到1
数据列(共4列):
#列非空计数数据类型
--- ------ -------------- -----
0 2非空对象
1 2非空int64
2非空int64
3.2非空对象
数据类型:int64(2),对象(2)
内存使用:192.0+字节
您的行在csv文件中用\n
分隔?行用逗号分隔。我运行了它,但出现了以下错误:**ValueError:格式错误的节点或字符串:啊,csv也有一个分隔行,因此在上面的示例中,该文件看起来像…RSVP'ing”“],“[”act”“…因此,该文件只包含一行(否\n
)。我将修正我的答案。这很接近,但奇怪的是,前9行被转换为9列,包含其中的所有四列。最后一行被正确解析。我注意到文本中有一些双空格,似乎取代了\xa0。索引0,列0包含以下内容:0 0“['act',1,24,”“非常感谢您回复我们的电话市政厅。\xa0若要将此活动添加到您的日历中,请单击此处。\xa0如果您认识任何您认为愿意加入电话市政厅的人,请单击此处向他们发送电子邮件,或向他们发送此链接:\xa0-来自ACT”“]的Sarah”
"[""act"", 1, 24, ""Hi, thank you so much for RSVP'ing""]","[""act"", 1, 43, ""Thank you for taking the time to tell us why wireless matters to you!""]"