できるだけ簡略化します。私は州ごとのビジネスリストを持つDataFrameを持っています。州によっては省略されているものもあれば、そうでないものもある。完全な州名を略語(例えばニュージャージー州のニュージャージー州)に置き換えたいと思います。文字列を辞書の値と置き換えてください
私はクールなモジュール "US"が見つかりました見つかったすべての状態とその略語を辞書に記載しています。私がしたいのは、フルネームを略語に置き換えることです。
コード:私が行うことができるよ
import pandas as pd
import numpy as np
import us
dfp = pd.DataFrame({'A' : [np.NaN,np.NaN,3,4,5,5,3,1,5,np.NaN],
'B' : [1,0,3,5,0,0,np.NaN,9,0,0],
'C' : ['Pharmacy of Oklahoma','NY Pharma','NJ Pharmacy','Idaho Rx','CA Herbals','Florida Pharma','AK RX','Ohio Drugs','PA Rx','USA Pharma'],
'D' : [123456,123456,1234567,12345678,12345,12345,12345678,123456789,1234567,np.NaN],
'E' : ['Assign','Unassign','Assign','Ugly','Appreciate','Undo','Assign','Unicycle','Assign','Unicorn',]})
print(dfp)
statez = us.states.mapping('abbr', 'name')
lst_of_abbrv = statez.keys()
lst_of_states = statez.values()
phrase = "Pharmacy of Oklahoma"
for x in phrase.split():
if x in lst_of_states:
x= x.replace(x, 'State')
print(phrase.split())
今唯一のことは、文字列を使用して、単語「国家」に置き換えるです。名前を辞書の略語で置き換えるにはどうしたらいいですか?私は試してみたが、x= x.replace(x, lst_of_abbrv)
のようなものが欲しいが、明らかにdict_keysで置き換えることができないのでエラーとなる。
余分なポイントあなたはここでデータフレーム
'X = x.replace(X、statez [X])'の列全体にこの機能を適用することができますか? – BallpointBen
キーと値を別のリストに分けてはいけません。 'if x in statez'をチェックするだけです。 –
@BallpointBenこれは私の最初のゴーイングでしたが、私はKeyErrorを取得します。 'KeyError: 'Oklahoma''より具体的な例の場合 – MattR