我有一个提供了properties.csv的数据集(4000行和6列)。包含许多功能的csv文件,其中某些功能是数字功能,而某些功能是标称功能(功能包含文本)。假设该数据集中的特征是
id
F1
F2
F3
F4
Price
每个功能的内容示例:
id(CSV文件中的第1至3行)---> 44525 44859 45465
F1(CSV文件中的第1至3行)--->“位于 黄金地带,马贝拉” “别墅在马贝拉的罗西奥·纳杰勒斯出售 黄金里程” “一间五层卧室的别墅在 Nagüeles”
F2(CSV文件中的第1至3行)--->“壁炉,电梯,露台,山景, 货运电梯,空调,天井, 客房,花园,阳台,海景,湖景 内置厨房” “山顶风光” “电梯,露台,警报系统,山区 景观,游泳池,空调, 地下室,可欣赏海景/湖面”
F3(CSV文件中的第1至3行)-包含数值---> 0 0 0
F4(CSV文件中的第1至3行)-包含数值---> 393 640 4903 F3(CSV文件中的第1至3行)-包含数值---> 4400000 2400000 1900000
在F1中,我希望执行以下操作:
1-提取属性的类型(公寓,房屋或别墅),并将其放在单独的功能(自变量)中,在CSV文件中调用“类型”。之后,我想将它们分成组(公寓组,房屋组,Vilas组),并计算每个类型组的平均价格。 2-提取每个属性的位置(位置可以是:Alenquer,Quinta da Marinha,Golden Mile和Nagüeles),并将其放在单独的功能(自变量)中,在csv文件中调用“ Location”。
我是NLP的初学者。我试图编写这段代码来从F1中提取信息“公寓”,但它可能无法正常工作:
import pandas as pd
from pandas import DataFrame
import re
properties = pd.read_csv (r'C:/Users/User/Desktop/properties.csv')
Extract "Apartment" from F1
Title= DataFrame(properties,columns= ['F1'])
for line in F1:
#return list of apartments in that line
x = re.findall("\apartment", line)
#if a date is found
if len(x) != 0:
print(x)
我需要您的帮助来修复此代码,以及如何从F1中提取其他信息“房屋”和“别墅”。
然后,以这种格式创建属性数据集并将其保存为csv文件:
id
Location (Information extracted from F1)
type (information extracted from F1 in groups "apartments’, ‘houses’, ‘Villas’")
F1
F2
F3
F4
Price
如果F1不包含某些属性的类型“空白字段(无文本)”,我该怎么办以处理F1中的空白字段(无文本)并从其他属性中提取属性的类型?
答案 0 :(得分:1)
这是一个解决方案:
import pandas as pd
import re
df = pd.read_csv('appt_info.csv', delimiter=';')
def extract_housing_type(text):
# Do a regular expression search for the pattern
match = re.search('(apartment|house|villa)s?', text, flags=re.I)
if match is not None:
return match.group(0) # return the value of the match
return 'Unknown' # return a default value if there is no match
df['Type'] = df.F1.apply(lambda x: extract_housing_type(x)) # assign the output to a new column
这应该给你一个看起来像这样的数据框:
id F1 \
0 44525 Stunning 6 bedroom villa in the heart of the G...
1 44859 Villa for sale in Rocio de Nageles, Marbella G...
2 45465 One level 5 bedroom villa for sale in Nageles
F2 F3 F4 Price Type
0 Fireplace, Elevator, Terrace, Mountain view, F... 0 393 4400000 villa
1 Mountain view 0 640 2400000 Villa
2 Elevator, Terrace, Alarm system, Mountain view... 0 4903 1900000 villa