【问题标题】:Separate different parts of a csv file?分隔csv文件的不同部分?
【发布时间】:2020-03-25 07:17:40
【问题描述】:

我是新手,我有一个 csv 文件,其中包含 reddit 的帐户名称、subreddit、时间和消息。

我是这样读的:

train_data = pd.read_csv("addres/train_data.csv", encoding="utf8")

如果我写: train_data.head()我明白了

你知道我可以用 [author, body] 创建一个数组的方法吗?

首先我尝试以这种方式创建两个数组(作者和消息):

train=open("addres/train_data.csv")
train.readline()
author=[]
message=[]
for line in train:
    autore,categoria,ora, messaggio=line.split(",")
    author.append(autore)
    message.append(messaggio)

但是messages包含“,”所以它不能正常工作。

谢谢你,很抱歉这个愚蠢的问题。

【问题讨论】:

  • 张贴来自addres/train_data.csv文件的可测试片段,而不是图片
  • 用pandas阅读后:train_data[['author', 'body']]?
  • 使用上下文管理器来处理文件。

标签: python pandas csv


【解决方案1】:
df_tmp = train_data[['author', 'body']] # allows you to select subset by column name
content_array = [list(x) for x in df_tmp.values] # a list of lists ([ith_author, ith_body])

请记住,df_tmp 只是 train_data 的 view,您可能需要根据您打算如何使用它来创建 copy。如果您需要数据不可变,则可以使用tuples

【讨论】:

  • 您好,谢谢。还有一个问题。现在我只对消息感兴趣,我已经按照你说的做了,没关系。我得到一个列表: [["message1"], ["message2"], etc ] 。我想要这样的东西:["message1", "message2" etc...] 我该怎么办?
  • 很高兴我能帮上忙。如果答案解决了您的问题,请接受。至于如何将一个列表扁平化成一个列表,请看this的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
  • 2015-08-09
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多