如何将带有多字符定界符的csv文件导入Python中的数据框?

问题描述 投票:0回答:1

我有这个movie.csv csv-file,我将其导入到名为“电影”的数据框中。但是我在删除这些#,##,###,####分隔符时遇到了一些麻烦。enter image description here我尝试了这段代码:

    import pandas as pd
my_cols=["Title", "US Gross", "Worldwide Gross", "Production Budget", "Release Date", "Distributor", "Source", "Major Genre", "Creative Type","Director","Rotten Tomatoes","Rating","IMDB Rating","IMDB Votes"]
movies=pd.read_csv('movies.csv', 
                   sep="\#\#\#\#",
                   quotechar='"',
                   names=my_cols,
                   engine="python")
movies

但它仍然保留此符号“#”,并且仅使1列。请帮助解决此问题。

python pandas csv delimiter separator
1个回答
0
投票

您可以在sep参数中提供一个正则表达式来表示您想要一个或多个#字符,例如:

movies=pd.read_csv('Downloads/movies.csv', 
                   sep="#{1,}",
                   quotechar='"',
                   names=my_cols,
                   engine="python")

0
投票

我注意到的第一件事是您的CSV文件具有single 作为分隔符。

诚然,它有时在序列中包含一些散列,但仅表示许多输入字段是missing(它们是空字符串)。这就是为什么原理上位于[之间的哈希实际上位于您的文件彼此相邻。另外要注意的是,

read_csv

的默认行为是:这样的空字符串将转换为NaN,对于缺少例如字符串。要关闭此功能,请传递

na_filter = False

因此,总结起来,请尝试以下代码:

movies = pd.read_csv('movies.csv', sep='#', quotechar='"', na_filter=False, names=my_cols)

© www.soinside.com 2019 - 2024. All rights reserved.