【问题标题】:Split a column with quotes and commas in Python在 Python 中用引号和逗号分割一列
【发布时间】:2021-08-23 23:04:04
【问题描述】:

我有一个数据框,它由如下所示的行组成:

"{'displayName':'MartinscroftTramStop','locationIdentifier':'STATION^15306','normalisedSearchTerm':'MARTINSCROFTTRAMSTOP'}"

如何将其拆分为列。我试过 str.slice[stop and start]。

我怀疑都是引号,但查找和替换它们似乎也不起作用

【问题讨论】:

  • 您忘记为您正在编码的语言添加标签,这将帮助您更快地获得帮助。您应该edit 添加该标签。
  • 这些数据是从哪里来的?您应该在创建数据框之前修复它。这是 Python 字典的字符串表示形式。如果您从 dict 开始,则在将其提供给 pandas 之前将其解压缩。
  • 你有两个问题。第一个是您的数据只是一个大字符串(它在引号内)。并且dict结构不是创建数据帧最需要的。

标签: python pandas dataframe split


【解决方案1】:

您可以使用eval('..') 函数处理第一个问题,即字符串对象。它将返回字符串的执行,因此将返回字典本身。

第二个,dict结构,你有多种选择。有一个解决方案

import pandas as pd
# Transform the string in dict 
dict_data=eval("{'displayName':'MartinscroftTramStop','locationIdentifier':'STATION^15306','normalisedSearchTerm':'MARTINSCROFTTRAMSTOP'}")

# Organize the data
columns_name = dict_data.keys()
data_list = [list(dict_data.values())]  # a row must be a list inside a list

pd.DataFrame(data_list, columns=columns_name)

【讨论】:

  • 谢谢。我遇到的问题是它不仅仅是一个字符串,而是一个类似格式化字符串的整个 df。所以 20 行,有不同的变量。
猜你喜欢
  • 1970-01-01
  • 2022-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 2012-05-23
  • 2015-05-31
  • 1970-01-01
相关资源
最近更新 更多