首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >迭代pandas dataframe并替换entires

迭代pandas dataframe并替换entires
EN

Stack Overflow用户
提问于 2019-08-28 11:26:37
回答 2查看 46关注 0票数 1

我需要遍历此数据帧的'Grade'列,并将条目"1""2""K"替换为"1/2",将"3""4"替换为"3/4"

代码语言:javascript
运行
复制
for i in kids_df:
    if kids_df['G'] == 1 or 2:
        kids_df['G'] = kids_df['Grade'].replace('1/2')

下面是DF:

代码语言:javascript
运行
复制
Name    M/F Grade   Size    Notes
0   Peter Parker    M   2   YM  Baughman
1   Tony Stark  M   1   YL  Baughman
2   Steve Rogers    M   K   YM  Baughman
3   Donald Blake    M   2   YM  Baughman
4   Bruce Banner    M   3   YM  Baughman

我正在寻找的结果:

代码语言:javascript
运行
复制
Name    M/F Grade   Size    Notes
0   Peter Parker    M   1/2 YM  Baughman
1   Tony Stark  M   1/2 YL  Baughman
2   Steve Rogers    M   1/2 YM  Baughman
3   Donald Blake    M   1/2 YM  Baughman
4   Bruce Banner    M   3/4 YM  Baughman
EN

回答 2

Stack Overflow用户

发布于 2019-08-28 11:32:48

尝试使用np.where

代码语言:javascript
运行
复制
df['Grade'] = np.where(df['Grade'].isin(['1', '2', 'K']), '1/2', '3/4')
print(df)

或者使用双str.replace

代码语言:javascript
运行
复制
df['Grade'] = df['Grade'].str.replace('1|2|K', '1/2').str.replace('3|4', '3/4')
print(df)

或者使用带有字典的replace

代码语言:javascript
运行
复制
df['Grade'] = df['Grade'].replace({'1|2|K': '1/2', '3|4': '3/4'}, regex=True)
print(df)

它们都输出:

代码语言:javascript
运行
复制
           Name M/F Grade Size     Notes
0  Peter Parker   M   1/2   YM  Baughman
1    Tony Stark   M   1/2   YL  Baughman
2  Steve Rogers   M   1/2   YM  Baughman
3  Donald Blake   M   1/2   YM  Baughman
4  Bruce Banner   M   3/4   YM  Baughman
票数 1
EN

Stack Overflow用户

发布于 2019-08-28 11:33:06

我们可以只做replace

代码语言:javascript
运行
复制
kids_df['G']=kids_df['G'].replace({1:'1/2',2:'1/2',3:'3/4',4:'3/4'})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57684635

复制
相关文章

相似问题

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