【问题标题】:Pandas: Read array column as column (array of strings)Pandas:将数组列读取为列(字符串数组)
【发布时间】:2019-05-31 23:38:38
【问题描述】:

我有一个如下所示的数据集(csv 格式):

id,description_data

0, "['manage' 'musical' 'staffmanage' 'staff' 'music' 'coordinate' 'duties' 'musical' 'staff' 'manage' 'music' 'staff' 'direct' 'musical' 'staffAssign' 'manage' 'staff' 'tasks' 'areas' 'scoring' 'arranging' 'copying' 'music' 'vocal' 'coaching']"

当我在数据集(包括作为字符串数组的这一列)上应用 pandas 命令 pd.read_csv 时,返回的行如下所示:

"['manage' 'musical' 'staffmanage' 'staff' 'music' 'coordinate' 'duties'\n 'musical' 'staff' 'manage' 'music' 'staff' 'direct' 'musical'\n 'staffAssign' 'manage' 'staff' 'tasks' 'areas' 'scoring' 'arranging'\n 'copying' 'music' 'vocal' 'coaching']"

这显然是一个字符串。但我将此值保存为字符串数组。 如何从 csv 正确解析/读取它?这可以通过 pandas 实现吗,还是我必须为此编写自己的解析器?

更具体地说,我想要的是这个。

['manage', 'musical', 'staffmanage', 'staff', 'music', 'coordinate', 'duties', 'musical', ...'arranging', 'copying', 'music', 'vocal', 'coaching']

有没有一个简单的 pandas 函数来提供这个?

【问题讨论】:

  • @ DaveTheAI ,您尝试过像这样使用pd.read_csv(file, sep=" ", header=None) 吗?如果有的话,您可以发布您尝试过的代码吗?

标签: python arrays pandas csv


【解决方案1】:

解决了你的问题

df.description_data.str[1:-1].str.replace("'",'').str.split(' ')
0    [manage, musical, staffmanage, staff, music, c...
Name: description_data, dtype: object

【讨论】:

    【解决方案2】:

    我只是用一个简单的解析函数解决了它:

    return inp[:-1][1:].replace("'", "").strip().split()

    有点难看,但有效..

    【讨论】:

    • 我相信您可以在使用pd.read_csv 本身管理数据的同时做到这一点。
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2018-03-23
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多