我正在尝试在 Jupyter 笔记本中加载一些 .csv 数据,但出于某种原因,它没有将我的数据分开,而是将所有内容都放在一列中。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df =
pd.read_csv(r'C:\Users\leonm\Documents\Fontys\Semester
4\GriefBot_PracticeChallenge\DummyDataGriefbot.csv')
df.head()
在这张图片中有我正在使用的数据。
现在我不明白为什么我的值都出现在单列中并且没有在逗号所在的位置分开。 我也试过 spe=',' 和 sep=';'但它们不会改变任何东西。
This is what I am getting
我非常感谢您的帮助。
答案 0 :(得分:1)
如果这就是您的数据在 Excel 等 CSV 阅读器中的显示方式,那么每一行在文本编辑器中可能看起来就像一个大字符串。
"ID,PERSON,DATE"
"1,A. Molina,1593147221"
"2,A. Moran, 16456"
"3,Action Marquez,15436"
您当然可以在 Excel 中执行“文本到列”并重新保存您的文件,或者如果您有很多这样的文件,您可以使用 Pandas split
函数。
df[df.columns[0].split(',')] = df.iloc[:,0].str.split(',', expand=True)
# ^ split header by comma ^ ^ create list split by comma, and expand
# | each list entry into a new column
# | select first column of data
df.head()
> ID,PERSON,DATE ID PERSON DATE
> 0 1,A. Molina,1593147221 1 A. Molina 1593147221
> 1 2,A. Moran, 16456 2 A. Moran 16456
> 2 3,Action Marquez,15436 3 Action Marquez 15436
然后您可以使用 pd.drop
删除第一列(如果您不需要它)
df.drop(df.columns[0], axis=1, inplace=True)