首页 > 解决方案 > 遍历熊猫数据框并替换整体

问题描述

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

for i in kids_df:
    if kids_df['G'] == 1 or 2:
        kids_df['G'] = kids_df['Grade'].replace('1/2')

这是DF:

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

我正在寻找的结果:

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

标签: pythonpandas

解决方案


尝试使用np.where

df['Grade'] = np.where(df['Grade'].isin(['1', '2', 'K']), '1/2', '3/4')
print(df)

或使用 double str.replace

df['Grade'] = df['Grade'].str.replace('1|2|K', '1/2').str.replace('3|4', '3/4')
print(df)

或将 areplace与字典一起使用:

df['Grade'] = df['Grade'].replace({'1|2|K': '1/2', '3|4': '3/4'}, regex=True)
print(df)

他们都输出:

           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

推荐阅读