Python数据帧,无法分离属性

Python数据帧,无法分离属性,python,pandas,dataframe,Python,Pandas,Dataframe,我正试图编写一个Python代码来训练一个数据集,以识别一条新闻是假的还是真的。我需要能够将数据放入列中,即属性和目标。is sarcastic列是目标,其值为1或0。标题和文章链接列是属性。数据集是巨大的,由数千行组成。下面我只展示了其中的三行。我的问题是:给定一个原始JSON文件,我将其转换为可以在Excel中读取的CSV文件。但是当我用Python显示数据时,属性并没有分开,而是集中在一列中,我不知道如何将它们分开。以下是我的代码的一部分,我没有列出我的所有导入或学习: import pa

我正试图编写一个Python代码来训练一个数据集,以识别一条新闻是假的还是真的。我需要能够将数据放入列中,即属性和目标。is sarcastic列是目标,其值为1或0。标题和文章链接列是属性。数据集是巨大的,由数千行组成。下面我只展示了其中的三行。我的问题是:给定一个原始JSON文件,我将其转换为可以在Excel中读取的CSV文件。但是当我用Python显示数据时,属性并没有分开,而是集中在一列中,我不知道如何将它们分开。以下是我的代码的一部分,我没有列出我的所有导入或学习:

import pandas as pd

from pandas import DataFrame

from sklearn.model_selection import train_test_split

file1 = pd.read_csv(r"C:\Users\JohnBoy\Downloads\fake.csv", sep='delimiter', header=None, engine='python')

file2 = pd.DataFrame(file1)

print(file2)

file2.shape

file2.head()

file2.columns.values

Now, below is the raw JSON file which I later converted to CSV: 

{"is_sarcastic": 1, "headline": "thirtysomething scientists unveil doomsday clock of hair loss", "article_link": "https://www.theonion.com/thirtysomething-scientists-unveil-doomsday-clock-of-hai-1819586205"}
{"is_sarcastic": 0, "headline": "dem rep. totally nails why congress is falling short on gender, racial equality", "article_link": "https://www.huffingtonpost.com/entry/donna-edwards-inequality_us_57455f7fe4b055bb1170b207"}
{"is_sarcastic": 0, "headline": "eat your veggies: 9 deliciously different recipes", "article_link": "https://www.huffingtonpost.com/entry/eat-your-veggies-9-delici_b_8899742.html"}
下面是我在Jupyter笔记本中看到的,当我运行上面的Python代码时,我在这里只显示了三行:

                        0

0               "is_sarcastic","headline","article_link"

1      1,"thirtysomething scientists unveil doomsday ...

2      0,"dem rep. totally nails why congress is fall...

3      0,"eat your veggies: 9 deliciously different r...

       **[11205 rows x 1 columns]**
       array([0], dtype=int64)
当我打字时:

df1.headline

df1.head()
我收到错误消息:“DataFrame”对象没有属性“headline”。这显然意味着,我没有3列,只有一列,你可以清楚地看到,它是11205行x1列。我做错了什么?我好像不能把我的专栏分开

pandas模块的read_csv方法返回DataFrame对象。因此,构建file2=pd.DataFramefile1的行完全没有必要

其次,当您打开一个.csv文件时,需要指定分隔符/分隔符arg:sepa字符,该字符将数据分成一行中的列,但在file1构造中没有正确指定

因为您指定在Excel中打开时看到逗号,所以在您的案例中分隔符是逗号

并且您已经设置了header为None。若在csv的第一行中有标题,那个么它应该是行的0索引

所以你的代码应该是, file1=pd.read\u csvrC:\Users\JohnBoy\Downloads\fake.csv,sep=',,header=0,engine='python'


第三,在Excel中打开csv文件时,打开一张空白表,然后进入数据>选择从文本数据导入>选择您的csv文件。然后,您将看到用于处理数据的分隔符选项。选择逗号后,您将能够在Excel中正确查看。

作为一个旁白,使用访问列。这是一个坏习惯。值也不应该被使用,IIRC。为什么要从文件_1创建数据帧?文件_1已经是数据帧。您确定JSON->CSV转换没有引起任何问题吗?您好。谢谢你的回复。是的,我意识到file1已经是数据帧格式了。但我的问题是,CSV文件在Excel中看起来还可以,但在Python中打开该文件时,逗号开始出现,属性无法访问。我在网上搜索了答案,但结果是空的。你能分享一些CSV数据吗?嗨,亚历山大。我对Stackoverflow是全新的。我刚刚粘贴了Excel电子表格的前三行。你能看到吗?是的,有点lol,你在哪里定义df1?阿马格斯瓦兰,谢谢你的回复。请允许我澄清,在Excel中没有看到逗号。在Excel中,一切都是它应该的样子。只有在用Python导入/打开CSV文件时,才会出现逗号。此外,我刚刚尝试了您的建议,即用逗号替换单词“delimiter”,即sep=',但这给了我一个解析错误-parserror:',在''之后应为''。@JohnRambo理解。不过很奇怪。您是否可以尝试不使用header arg且header=0 arg时仍然存在问题..这肯定与分隔符有关。请复制粘贴到这里,粘贴您在出现解析错误时使用的确切新行。Amageswaran,当我使用行file1=pd时。read\u csvrC:\Users\JohnBoy\Downloads\fake.csv,sep='delimiter',header=None,engine='python'我没有收到错误。但是,当我使用file1=pd.read\u csvrC:\Users\JohnBoy\Downloads\fake.csv,sep=',',header=None,engine='python'时,我得到一个解析错误。而且,我没有头。我认为这就是问题所在。包含我的属性和目标名称的行被视为数据,而不应该是数据。此外,我将header=None更改为header=0,以查看它是否会产生任何影响,但没有。我仍然得到AttributeError:“DataFrame”对象没有属性“headline”