我有几列字符串,我必须将其转换为值。我用了这段代码
不幸的是,fillna
方法在此示例中不起作用。
如何解决此问题?
这是head()
data['country_txt'] = data['country_txt'].astype('float64')
data['city'] = data['city'].astype('float64')
我期望结果正常,但实际输出全部充满了NaN值:
country_txt 0非空float64 城市0非空float64
答案 0 :(得分:0)
显然,您需要将字符串映射到integer
表示形式。
有很多不同的方法来实现这一目标。
pd.factorize
df['country_as_int'] = pd.factorize(df['country_txt'])[0]
LabelEncoder
from sklearn.preprocessing import LabelEncoder
f = LabelEncoder()
df['country_as_int'] = f.fit_transform(df['country_txt'])
np.unique
df['country_as_int'] = np.unique(df['country_txt'], return_inverse=True)[-1]