python - 使用 Pandas 将有序字符数据更改为数字数据

标签 python pandas

我有一个带有字母等级的 pandas 数据框:A、B、C、D 和 None。我想将其转换为数字数据,其中 A = 1、B = 2 等。

我可以想到几种方法来解决这个问题,但我想知道是否有一种惯用的方法。

最佳答案

从技术上讲,您可以跳过 'None':np.nan 部分,因为 conv_dict.get 对于不在键中的值返回 None并且 None 被转换为 np.nan。然而,这可能具有也可能不是最好的可维护性。

In [49]:

df=pd.DataFrame({'data':['A','B','C','D','None']})
conv_dict={'A':1.,'B':2.,'C':3.,'D':4.,'None':np.nan}
df['data_c']=df.data.apply(conv_dict.get)
In [51]:

print df
   data  data_c
0     A       1
1     B       2
2     C       3
3     D       4
4  None     NaN

关于python - 使用 Pandas 将有序字符数据更改为数字数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818886/

相关文章:

python - Numpy Pandas 删除异常值

google-app-engine - Google App Engine 的执行方式与其本地应用程序服务器不同

java - 通过 java-%1 在 cmd 中运行 python 文件不是有效的 Win32 应用程序

python - 如何将 DataFrame 的每一行导出到同一工作簿中的不同工作表?

python - 如何将数据框中的 2 行连接到新数据框中的 1 行?

Python Pandas 更新数据框并计算更新的单元格数量

python - 我想在文件对话框中的 "save as"选项时使用扩展列表在 Python 3 中进行文件写入

python - 动态处理 View 中的多个按钮| Pycord、Discord.py

python - 重置下划线 (`_` ) 由 IPython 内核驱动的 Jupyter 笔记本中的变量

Python pandas 时间序列插值日期时间数据