python:替换pandas中多列中的值

2024-06-01 00:37:22 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd

df = pd.DataFrame([[1,2, 3, 'www', 'abc'],[4,5,6, 'ppp', 'def'], [6,7,8, 'qqq', 'ggg'], [11,22,33, 'fff', 'mmm']], columns=['A', 'B', 'C', 'D', 'E'])

d = {'www': 'www_replaced', 'def': 'def_replaced', 'fff': 'fff_replaced' }
df.replace(d, value=None, inplace=True)

因此,dataframe被相应地更新:

>>> df
    A   B   C             D             E
0   1   2   3  www_replaced           abc
1   4   5   6           ppp  def_replaced
2   6   7   8           qqq           ggg
3  11  22  33  fff_replaced           mmm
>>>

但是,出于两个原因,我想在d列和E列上使用map()pandas函数:

  • 我读到一般来说mapreplace
  • 我可以这样做:df[column] = df[column].map(d).fillna('Unknown')

我可以运行两次,例如:

df['D'] = df['D'].map(d).fillna('Unknown')
df['E'] = df['E'].map(d).fillna('Unknown')

但是有没有一种方法可以在一个命令中使用map来更改多个列中的值呢


Tags: mappandasdffffdefwwwunknownpd