【问题标题】:Change pandas series type from str to list/numeric [duplicate]将 pandas 系列类型从 str 更改为 list/numeric [重复]
【发布时间】:2020-10-19 13:36:37
【问题描述】:

我有以下数据框:

df_small

每列的类型为pandas.Series,列中的每个值的类型为str。

df_small['center'][0] # '[(181, 186)]'

我想从每个值中删除字符串引号以访问列表值。

【问题讨论】:

  • pd.to_numeric(df_small['center'], errors='coerce') 适合你吗?
  • 使用ast.literal_eval。它将列表的字符串表示形式转换为实际列表
  • 请以文本形式提供您的数据框示例

标签: python pandas


【解决方案1】:

根据 cmets 的建议,您可以使用 ast 模块中的literal_eval,可以在此处找到一些文档。我会在这种情况下使用map(lambda x:),以防并非所有值都是list,正如标题中所建议的那样:

import ast
df['center'] = df['center'].map(lambda x: ast.literal_eval(x))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2015-05-08
    • 2017-04-25
    相关资源
    最近更新 更多