我有一个包含用户位置的Twitter数据框。位置变量如下所示:
2 Crockett, Houston County, Texas, 75835, USA
3 NYC, New York, USA
4 Warszawa, mazowieckie, RP
5 Texas, USA
6 Virginia Beach, Virginia, 23451, USA
7 Louisville, Jefferson County, Kentucky, USA
我想通过使用一个循环来为所有美国州构建国家假人。你知道吗
我已经设法从美国提取用户使用
location_usa = location_df['location'].str.contains('usa', case = False)
但是代码太庞大了,我为每个州都写了这个。我有一个字符串列表。 我也不能用
pd.Series.Str.get_dummies()
因为在同一个州有不同的地方,每个条目都是一个完整的句子。你知道吗
我希望输出像这样:
Alabama Alaska Arizona
1 0 0 1
2 0 1 0
3 1 0 0
4 0 0 0
或与布尔值相同。你知道吗
使用
.str.extract
获取状态的Series
,然后对该Series
使用pd.get_dummies
。将需要定义所有50个州的列表:注意,我在状态后面匹配了
','
,因为这似乎就是模式,并允许您避免像'Virginia'
与'Virginia Beach'
这样的错误匹配,或者像'Washington County, Minnesota'
这样的问题如果您希望多个状态在一行上匹配,那么这将成为跨第0级的
.extractall
求和:编辑:
也许有更好的方法,但正如@BradSolomon所建议的,允许在
'State,( optional 5 digit Zip,) USA'
上进行匹配会更安全一些输出:
s
从输入
相关问题 更多 >
编程相关推荐