python - 使用 Python 字典替换/清理 Pandas DataFrame 中的数据

标签 python pandas

我有一个看起来像这样的数据框(table2)

57                  INVERNESS
361                 INVERNESS
533                 INVERNESS
535     INVERNESS KERRY DOWNS
758           INVERNESS GREEN
807                 INVERNESS
970           INVERNESS POINT
971                 INVERNESS

等等..

我需要使用 Dict 来映射/替换名称(我在 Excel 工作表中) 当我将翻译表读入 Pandas 时,我得到一个 DF,看起来像

             NSUBDIVISION
SUBDIVISION 
*HUFFMAN**8MILES NE  OTHER
0                    OTHER
00                   OTHER
000                  OTHER
INVERNESS POINT      INVERNESS

等等.. 当我使用 xlate=df.to_dict() 将其转换为 DICT 时,我得到一个如下所示的 dict(xlate):

{u'NSUBDIVISION': {u'*HUFFMAN**8MILES NE': u'OTHER',
  u'0': u'OTHER',
  u'00': u'OTHER',
  u'000': u'OTHER',
  u'0000': u'OTHER',
  u'INVERNESS POINT': u'INVERNESS',

所以......(我提到这一点是因为我不确定字典是否正确形成)

我想做一些类似的事情

 table2['SUBDIVISION'].replace(to_replace=xlate,inplace=True)

我想查找 xlate 表第一列中的值,将它们与 table2['SUBDIVISION'] 匹配,如果找到,则将 SUBDIVISION 的内容替换为 xlate 第 2 列中的值(如果不保留它们)(奖励..实际上如果第 2 列是 NAn,我也想不理会它)例如上面找到的 INVERNESS POINT 将被 INVERNESS 替换

目前我刚刚得到 TypeError: unhashable type: 'dict'

最佳答案

我想你想创建一个 dictionary from the Series (而不是数据框):

In [11]: translate_df['NSUBDIVISION'].to_dict()
Out[11]:
{'*HUFFMAN**8MILES NE': 'OTHER',
 '0': 'OTHER',
 '00': 'OTHER',
 '000': 'OTHER',
 'INVERNESS POINT': 'INVERNESS'}

并用它来 replace专栏:

In [12]: df['SUBDIVISION'].replace(translate_df['NSUBDIVISION'].to_dict())
Out[12]:
0                INVERNESS
1                INVERNESS
2                INVERNESS
3    INVERNESS KERRY DOWNS
4          INVERNESS GREEN
5                INVERNESS
6                INVERNESS
7                INVERNESS
Name: SUBDIVISION, dtype: object

关于python - 使用 Python 字典替换/清理 Pandas DataFrame 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067982/

相关文章:

python - 使用 wxPython 更改工具栏中的标签

python - 返回嵌套在多个数组中的数组的最简单方法

Python - 多个元素的groupby(元组列​​表)

python - 当我想将数据插入 django 中的模型类时出现错误?

python - 如何从 pandas 数据框中使用正则表达式删除答案中的点号 : '(i)' , '(ii)' 、 '(iii)' ?

python - Pandas:以每小时的频率正确地重新采样数据

javascript - 在python bokeh中将文件从客户端上传到服务器

python - pandas 数据透视表 : calculate weighted averages through aggfunc

python - 为什么赋值会默默地失败或做错误的事情,我怎样才能阻止它这样做

python - 基于另一只 Pandas 聚合一列