如何从表示为 ["Smth"、"Smth"、"Smth"] 的字符串中获取列表
How to get list out of string represented as ["Smth", "Smth", "Smth"]
我有一个 pandas 系列对象,其中包含与房屋相关的特征。这些功能像这样放在方括号中:['Laundry In Unit'、'No Fee'、'Elevator'] 但我需要将这些功能作为字符串列表,所以我想知道是否可能。
实际上,我想创建一个包含“特征评分”的新列,因此我为不同的特征添加了分数。我试图像这样实现它(文本下方的代码),但这个“功能”列似乎没有列表,而是看起来像列表的字符串。
features_dict = {
'Laundry In Unit,':5 ,
'No Fee,':5,
'Elevator,': 3,
'Dogs Allowed,':3,
'Cats Allowed,': 3,
'Swimming Pool,': 8,
'Doorman,':9,
'Fitness Center,': 8,
'Dishwasher,': 5,
'Hardwood Floors,': 4,
'Pre-War,': 3,
'Common Outdoor Space,': 4,
'Private Outdoor Space,':8
}
features_list = clean_data['features'].tolist()
features_score = [0] * len(features_list)
for i in range(len(features_list)):
for key, num in features_dict.items():
for word in features_list[i].split(" "):
if key == word:
features_score[i]+=num
也许features_dict.keys()
你会有一个密钥列表
祝你有愉快的一天
如果您有一个 repr
像这样的字符串:
'["Smth", "Smth", "Smth"]'
并且您想要一个如下所示的列表:
["Smth", "Smth", "Smth"]
那么你需要ast.literal_eval
:
import ast
the_string = '["Smth", "Smth", "Smth"]'
the_list = ast.literal_eval(the_string)
print(the_list)
输出:
['Smth', 'Smth', 'Smth']
我有一个 pandas 系列对象,其中包含与房屋相关的特征。这些功能像这样放在方括号中:['Laundry In Unit'、'No Fee'、'Elevator'] 但我需要将这些功能作为字符串列表,所以我想知道是否可能。
实际上,我想创建一个包含“特征评分”的新列,因此我为不同的特征添加了分数。我试图像这样实现它(文本下方的代码),但这个“功能”列似乎没有列表,而是看起来像列表的字符串。
features_dict = {
'Laundry In Unit,':5 ,
'No Fee,':5,
'Elevator,': 3,
'Dogs Allowed,':3,
'Cats Allowed,': 3,
'Swimming Pool,': 8,
'Doorman,':9,
'Fitness Center,': 8,
'Dishwasher,': 5,
'Hardwood Floors,': 4,
'Pre-War,': 3,
'Common Outdoor Space,': 4,
'Private Outdoor Space,':8
}
features_list = clean_data['features'].tolist()
features_score = [0] * len(features_list)
for i in range(len(features_list)):
for key, num in features_dict.items():
for word in features_list[i].split(" "):
if key == word:
features_score[i]+=num
也许features_dict.keys()
你会有一个密钥列表
祝你有愉快的一天
如果您有一个 repr
像这样的字符串:
'["Smth", "Smth", "Smth"]'
并且您想要一个如下所示的列表:
["Smth", "Smth", "Smth"]
那么你需要ast.literal_eval
:
import ast
the_string = '["Smth", "Smth", "Smth"]'
the_list = ast.literal_eval(the_string)
print(the_list)
输出:
['Smth', 'Smth', 'Smth']