最初,我有一个数据框df1,其中包含一个性别列,其值是Female和Male。由于我想使用临时数据框,因此我首先复制了它。参见代码:
df2 = df1
gMap = {'Female': 1, 'Male': 0}
df2['sex']=df2['sex'].map(gMap)
发生了2个问题:
最后一个问题是,如何将列数据类型以及上面的映射更改为整数。
为了避免引用原始DataFrame,必须首先为DataFrame
新建一个C0,因此更改df1将避免更改df2。
如果没有匹配可能的问题是尾随空格,请通过DataFrame.copy
删除它们:
DataFrame.copy
这也会改变数据类型吗?
取决于。
如果列中的所有唯一值都是Series.str.strip
或Series.str.strip
(字典中的键),则创建新的整数列:
df2 = df1.copy()
print (df2['sex'].unique())
gMap = {'Female': 1, 'Male': 0}
df2['sex']=df2['sex'].str.strip().map(gMap)
如果有更多值,请获取浮点列,因为不匹配的值将返回缺少的值:
Female