【问题标题】:Convert String to Array of Arrays in Python在 Python 中将字符串转换为数组数组
【发布时间】:2019-11-05 05:20:10
【问题描述】:

我正在尝试将看似字符串的内容转换为数组数组。我正在使用 read_excel 上传 Excel 工作表,但其中一列已格式化:

[[u'MAKER', u'CREATED', u'1463538547', None], ['SHOP', u'ACCEPTED', u'1463538651', None], [u'SHOP', u'READY', u'1463539221', None], [u'COURIER', u'COMPLETED', u'1463540801', None]]

它作为一个完整的字符串读取它,但我希望它被读取为一个数组数组,所以我循环遍历每个数组。这是我用来接收文件的东西

changes = pd.read_excel('dataset.xlsx', sheet_name = "changes").

我尝试将类型更改为列表,但这似乎没有帮助。

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 具有数组数组的列名是什么

标签: python excel pandas


【解决方案1】:

您可以使用ast.literal_eval

>>> from ast import literal_eval
>>> s = "['a',['b','c','d'],'e']"
>>> print(literal_eval(s))
['a', ['b', 'c', 'd'], 'e']

【讨论】:

    【解决方案2】:

    你可以试试这个吗?将 'array_column_name' 更改为实际的列名

    changes = pd.read_excel('dataset.xlsx', sheet_name = "changes",converters={'array_column_name':ast.literal_eval})
    
    

    【讨论】:

    • 我收到 TypeError: unhashable type: 'list' 的错误
    • 我能弄明白。每次我尝试进行第二次循环以查看内部数组时,它都会将该数组视为字符串,以便循环遍历字母。执行以下操作让我得到了我想要的,谢谢!对于更改中的行['array_list']:对于 ast.literal_eval(row) 中的项目:打印(项目)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2018-09-19
    • 2018-10-06
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多