熊猫中的数据框中的字符串值
-
16-10-2019 - |
题
假设我有这样的数据框架:
Hospital_name State Employees ......
Fortis Delhi 5000 ......
AIIMS Delhi 1000000 ......
SuperSpeciality Chennai 1000 ......
现在,我想使用此数据框架来构建机器学习模型进行预测分析。为此,我必须将字符串转换为浮点值。医院_NAME和状态中的其中一些列还包含“ NAN”值。在这种情况下,我应该如何准备数据以在Keras中构建模型?
解决方案
要从字符串转换为pandas中的浮动(假设您要转换员工并使用DF加载数据框),则可以使用
df['Employees'].apply(lambda x:float(x))
您没有提供有关输入和预期输出的足够信息。因此,让我们假设医院的名称或任何事物是您模型的输入的 nan
, ,您想从数据集中删除它,因为从'nan
'没有意义。除此之外,如果它们只是其他外围特征,那就可以了。在这种情况下,如果您想将它们转换为空白,请使用 df.replace(np.nan,' ', regex=True)
. 。否则,如果您想删除该框架,则可以使用 这个.
其他提示
处理类型的最佳方法是在摄入文件时指定它:
pandas.read_csv(file_name, dtype={"Employees": float})
您对Keras中缺少的数据的处理取决于您。你的计划是什么?
更直接的转换方式 Employees
至 float
.
df.Employees = df.Employees.astype(float)
您没有指定使用NAN的内容,但是可以使用不同的值(INT或字符串)替换它们:
df = df.fillna(value_to_fill)
如果您想与 NaN
在其中:df = df.dropna()
我不明白为什么您会将字符串映射到漂浮物...我建议使用一个热编码用布尔1或0对字符串进行分类。
在熊猫里,这将是
import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
您也可以添加 pd.get_dummies(l, dummy_na=True)
处理NAN值。