如何使.replace函数比多次调用同一个.replace函数更有效?

2024-05-11 18:09:52 发布

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

我只想重命名数据框中的值。这段代码可以工作,但我想知道如何将所有这行代码压缩为一行

我正在使用seaborn图书馆的功能磁共振成像样本集

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)

Tags: 数据代码import功能numpy图书馆asseaborn
2条回答

如果您想要更一般化/更详细的替换,请记住DataFrame.replace还将dict作为参数:

fmri.replace({'frontal': 'Frontal', 'parietal': 'Parietal', 'cue': 'Cue', 'stim': 'Stim'}, inplace=True)

str.title

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

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]

相关问题 更多 >