Pandas 没有将 csv 文件中的字符串正确地分隔到列中
Pandas doesn't separate string in csv file to columns correctly
我是 Python 数据分析的新手,在项目制作过程中遇到了问题。 csv文件中的某些值在双引号中有分隔符,因此Pandas无法正确分隔
top = pd.read_csv(r"C:\Users\User\Desktop\data analytics\Project\Analysis-Spotify-Top-2000\Spotify-2000.csv",delimiter = ",",
encoding = "UTF-8", doublequote=True, engine="python", quotechar='"', quoting=csv.QUOTE_ALL)
我找到了那个问题的记录:
我的老师建议我用这些值和相同的列创建一个新的数据框,并且应该删除那些用双引号分隔的记录,然后 df 将合并到原来的。
但老实说,我不知道该怎么做(我做了一些奇怪的事情 - screen2)
is_title_null = pd.isnull(top["Title"])
missing_list = top[is_title_null]["Index"].tolist()
list_of_missing_list = []
for i in missing_list:
l = i.split(', ')
list_of_missing_list.append(l)
list_of_missing_list
missing_df = pd.DataFrame(np.empty((0, 15)))
missing_df.columns = ["Index", "Title","Artist","Top Genre","Year","Beats Per Minute
(BPM)","Energy","Danceability","Loudness (dB)","Liveness","Valence","Length
(Duration)","Acousticness","Speechiness","Popularity"]
missing_df.append(list_of_missing_list,ignore_index = True)
这是我在GitHub中的项目link(在这里你可以看到问题):https://github.com/Sabina-Karenkina/Analysis-Spotify-Top-2000
好的。这不是一种真正优雅的做事方式,但正如我在之前的评论中提到的,您不会通过首先创建数据框来解决问题,因为文件一开始就已损坏。我设法找到了一种轻松解决它的方法。
用 excel 打开您的 Spotify-2000
文件,然后将文本添加到列中。当询问哪个分隔符时,选择 ,(逗号)。将您的文件另存为新的“´´csv´´´”文件 (Soptify2.csv),但请确保有 ;作为分隔符(这是因为您的标题可能包含逗号。
现在,使用pandas
读取这个新文件:
top = pd.read_csv(r"C:/Users/k_sego/spotify2.csv",delimiter = ";",
encoding = "iso-8859-1", doublequote=True, engine="python")
top.head(100)
我是 Python 数据分析的新手,在项目制作过程中遇到了问题。 csv文件中的某些值在双引号中有分隔符,因此Pandas无法正确分隔
top = pd.read_csv(r"C:\Users\User\Desktop\data analytics\Project\Analysis-Spotify-Top-2000\Spotify-2000.csv",delimiter = ",",
encoding = "UTF-8", doublequote=True, engine="python", quotechar='"', quoting=csv.QUOTE_ALL)
我找到了那个问题的记录:
我的老师建议我用这些值和相同的列创建一个新的数据框,并且应该删除那些用双引号分隔的记录,然后 df 将合并到原来的。
但老实说,我不知道该怎么做(我做了一些奇怪的事情 - screen2)
is_title_null = pd.isnull(top["Title"])
missing_list = top[is_title_null]["Index"].tolist()
list_of_missing_list = []
for i in missing_list:
l = i.split(', ')
list_of_missing_list.append(l)
list_of_missing_list
missing_df = pd.DataFrame(np.empty((0, 15)))
missing_df.columns = ["Index", "Title","Artist","Top Genre","Year","Beats Per Minute
(BPM)","Energy","Danceability","Loudness (dB)","Liveness","Valence","Length
(Duration)","Acousticness","Speechiness","Popularity"]
missing_df.append(list_of_missing_list,ignore_index = True)
这是我在GitHub中的项目link(在这里你可以看到问题):https://github.com/Sabina-Karenkina/Analysis-Spotify-Top-2000
好的。这不是一种真正优雅的做事方式,但正如我在之前的评论中提到的,您不会通过首先创建数据框来解决问题,因为文件一开始就已损坏。我设法找到了一种轻松解决它的方法。
用 excel 打开您的 Spotify-2000
文件,然后将文本添加到列中。当询问哪个分隔符时,选择 ,(逗号)。将您的文件另存为新的“´´csv´´´”文件 (Soptify2.csv),但请确保有 ;作为分隔符(这是因为您的标题可能包含逗号。
现在,使用pandas
读取这个新文件:
top = pd.read_csv(r"C:/Users/k_sego/spotify2.csv",delimiter = ";",
encoding = "iso-8859-1", doublequote=True, engine="python")
top.head(100)