我正在尝试进行预处理,以查找美国某人提交的所有文本。美国的所有用户都可以放置在同一位置。不需要在美国的确切位置。
我有一个类似于的数据集:
created_at text lang location by
Wed Jul 8 some text. english. New York, NY. User 1
Wed Jul 8 some text. english. Washington, DC. User 1
Wed Jul 8 some text. english. Baltimore. User 1
Wed Jul 8 some text. english. DC, US. User 1
Wed Jul 8 some text. english. The United States. User 1
Wed Jul 8 some text. english. US. User 1
Wed Jul 8 some text. english. Poland. User 1
Wed Jul 8 some text. english. 1234332. User 1
Wed Jul 8 some text. english. The Earth. User 1
Wed Jul 8 some text. english. Nottingham. User 1
Wed Jul 8 some text. english. Leicestershire, England User 1
Wed Jul 8 some text. english. ⬛️⬛️⬛️⬛️⬛️⬛️ [REDACTED] User 1
Wed Jul 8 some text. english. 天国の門 User 1
而不是遍历数据集并一一删除所有非美国州,州,县等。是否可以轻松访问df.locations,并获得纽约,纽约,华盛顿特区,哥伦比亚特区,美国,巴尔的摩,美国和美国以外的所有位置?这只是数据的一小部分,这就是为什么我试图找到一种更简化的方法。
答案 0 :(得分:0)
好像“位置”列不是标准格式。 尝试使用白名单方法,从而删除位置不在批准列表中的行。
remove_list = ['Ney York','US']
df_us = df [df ['location']。isin(approved_list)]
通过对大小写和空格进行规范化,可以改进这种方法。
答案 1 :(得分:0)
您可以尝试使用geopy找出该行在谈论哪个国家。用法的示例如下(用行替换“芝加哥伊利诺伊州”)。
from geopy.geocoders import Nominatim
geolocator = Nominatim()
loc = geolocator.geocode('Chicago Illinois')
print(loc.address)
# u'Chicago, Cook County, Illinois, United States of America'
loc = geolocator.geocode('San Francisco California')
print(loc.address[-1])
# United States of America'