DataFrame.replace由嵌套字典

时间:2019-03-20 23:24:09

标签: python pandas dataframe

我有一个庞大的数据框,在其中需要更改许多条目。因此,我创建了一个翻译字典,其结构如下:

{'Data.Bar Layer': {'1': 0,
  '1.E': 21,
  '2': 13,
  '2.E': 22,
  '3': 14,
  '3.E': 24,
  '4': 15,
  '4.E': 23,
  'B': 16,
  'CL1': 1,
  'CL2': 2,
  'CL2a': 6,
  'CL3': 3,
  'CL3a': 4,
  'CL4': 5,
  'E': 18,
  'L1': 7,
  'L2': 8,
  'L2a': 12,
  'L3': 9,
  'L3a': 10,
  'L4': 11,
  'T': 17,
  'T&B': 19,
  'T+B': 20},
 'Data.Bar Type': {'N': 0, 'R': 1},
 'Data.Defined No. Bars': {'No': 0, 'Yes': 1},
 'Data.Design Option': {'-1': 0, 'Main Model': 1},...}

screenshot of the dictionaries print representation

第一个键对应于dataframe列,第二个键对应于需要更改的值,例如Data.Bar Layer列中的所有'1'应该为0。This is how the documentation of pandas.dataframe.replace states the dictionary to look like 但是,相同的值必须多次交换,(我猜)这会导致错误:

  

键和值重叠的位置不允许替换

Here is a snippet of the Dataframe.是否有任何解决方法来避免此错误?我尝试了一些应用和映射的方法,但是不幸的是,它们没有用。

预先感谢和亲切的问候, 最高

1 个答案:

答案 0 :(得分:0)

也许还有一种更Python化的方式,但是这段代码对我有用;

url