Python 我可以用dataframe一次替换一些值吗?
现在我必须这样做:Python 我可以用dataframe一次替换一些值吗?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,现在我必须这样做: df = pd.DataFrame({'column': ['A', 'B', 'C', 'D', 'E', 'F', 'G', '-']}) df['column'] = df['column'].str.replace('A', 'cat').replace('B', 'rabit').replace('C', 'octpath').replace('D', 'spider').replace('E', 'mammoth').replace('F', 'snake').r
df = pd.DataFrame({'column': ['A', 'B', 'C', 'D', 'E', 'F', 'G', '-']})
df['column'] = df['column'].str.replace('A', 'cat').replace('B', 'rabit').replace('C', 'octpath').replace('D', 'spider').replace('E', 'mammoth').replace('F', 'snake').replace('G', 'starfish')
但我认为这很长很难理解。
您知道一个简单的解决方案吗?您可以定义替换值的dict并调用传入dict的列,要处理不存在的值,您可以传递参数na_action='ignore',这将返回NaN或None,因为您希望保留现有值。如果不存在,您可以调用并传递原始列:
In[60]:
df = pd.DataFrame({'column': ['A', 'B', 'C', 'D', 'E', 'F', 'G', '-']})
d = {'A':'cat','B':'rabit', 'C':'octpath','D':'spider','E':'mammoth','F':'snake','G':'starfish'}
df['column'] = df['column'].map(d, na_action='ignore').fillna(df['column'])
df
Out[60]:
column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 snake
6 starfish
7 -
您可以定义替换值的dict并调用传入dict的列,要处理不存在的值,您可以传递参数na_action='ignore',这将返回NaN或None,因为您希望保留现有值。如果不存在,您可以调用并传递原始列:
In[60]:
df = pd.DataFrame({'column': ['A', 'B', 'C', 'D', 'E', 'F', 'G', '-']})
d = {'A':'cat','B':'rabit', 'C':'octpath','D':'spider','E':'mammoth','F':'snake','G':'starfish'}
df['column'] = df['column'].map(d, na_action='ignore').fillna(df['column'])
df
Out[60]:
column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 snake
6 starfish
7 -
以下是另一种方法,使用: 输出:
column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 snake
6 starfish
7 -
以下是另一种方法,使用: 输出:
column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 snake
6 starfish
7 -
如果要设置默认值
df['column']=df.column.apply(lambda x:mapper.get(x) if mapper.get(x) is not None else "pandas")
df.column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 pandas
6 pandas
7 pandas
涉谷的格雷廷
如果要设置默认值
df['column']=df.column.apply(lambda x:mapper.get(x) if mapper.get(x) is not None else "pandas")
df.column
0 cat
1 rabit
2 octpath
3 spider
4 mammoth
5 pandas
6 pandas
7 pandas
来自涉谷的greatings谢谢,哇,我知道了,我会用地图。“很好,谢谢你。”MaikoOhkawa说どういたしまして谢谢,哇,我会用地图,我明白了。“很好,谢谢你。”MaikoOhkawa说どういたしまして太棒了。我不知道替换可以接收dic。这是最简单的。谢谢,太棒了。我不知道替换可以接收dic。这是最简单的。谢谢,谢谢。我在需要的时候使用lambda。谢谢,谢谢。我在需要的时候使用lambda。非常感谢。