我所要做的就是重命名我的数据帧中的值。这段代码可以工作,但我想弄清楚如何将所有这行代码压缩到1行。
我使用的是seaborn库中的fmri样本集。
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)发布于 2021-03-23 09:16:23
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]发布于 2021-03-23 09:14:27
如果您想要一个更通用/更详细的替代方案,请记住,DataFrame.replace还会将dict作为参数:
fmri.replace({'frontal': 'Frontal', 'parietal': 'Parietal', 'cue': 'Cue', 'stim': 'Stim'}, inplace=True)https://stackoverflow.com/questions/66755902
复制相似问题