首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使我的.replace函数更有效,而不是多次调用同一个.rename函数?

如何使我的.replace函数更有效,而不是多次调用同一个.rename函数?
EN

Stack Overflow用户
提问于 2021-03-23 09:09:38
回答 2查看 48关注 0票数 1

我所要做的就是重命名我的数据帧中的值。这段代码可以工作,但我想弄清楚如何将所有这行代码压缩到1行。

我使用的是seaborn库中的fmri样本集。

代码语言:javascript
复制
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

fmri = sns.load_dataset('fmri')
fmri.columns = ['Subject','Timepoint','Event','Region','Signal']
fmri=fmri.set_index('Subject') 

fmri = fmri.replace(['frontal'],'Frontal')
fmri = fmri.replace(['parietal'],'Parietal')
fmri = fmri.replace(['cue'],'Cue')
fmri = fmri.replace(['stim'],'Stim')

print(fmri)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-23 09:16:23

str.title

对于两列['Event', 'Region']中的所有字符串都是通用的

代码语言:javascript
复制
fmri.assign(**fmri[['Event', 'Region']].applymap(str.title))

         Timepoint Event    Region    Signal
Subject                                     
s13             18  Stim  Parietal -0.017552
s5              14  Stim  Parietal -0.080883
s12             18  Stim  Parietal -0.081033
s11             18  Stim  Parietal -0.046134
s10             18  Stim  Parietal -0.037970
...            ...   ...       ...       ...
s0               8   Cue   Frontal  0.018165
s13              7   Cue   Frontal -0.029130
s12              7   Cue   Frontal -0.004939
s11              7   Cue   Frontal -0.025367
s0               0   Cue  Parietal -0.006899

[1064 rows x 4 columns]
票数 2
EN

Stack Overflow用户

发布于 2021-03-23 09:14:27

如果您想要一个更通用/更详细的替代方案,请记住,DataFrame.replace还会将dict作为参数:

代码语言:javascript
复制
fmri.replace({'frontal': 'Frontal', 'parietal': 'Parietal', 'cue': 'Cue', 'stim': 'Stim'}, inplace=True)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66755902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档