我需要遍历此数据帧的'Grade'
列,并将条目"1"
、"2"
或"K"
替换为"1/2"
,将"3"
或"4"
替换为"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
发布于 2019-08-28 03:32:48
尝试使用np.where
df['Grade'] = np.where(df['Grade'].isin(['1', '2', 'K']), '1/2', '3/4')
print(df)
或者使用双str.replace
df['Grade'] = df['Grade'].str.replace('1|2|K', '1/2').str.replace('3|4', '3/4')
print(df)
或者使用带有字典的replace
:
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
发布于 2019-08-28 03:33:06
我们可以只做replace
kids_df['G']=kids_df['G'].replace({1:'1/2',2:'1/2',3:'3/4',4:'3/4'})
https://stackoverflow.com/questions/57684635
复制相似问题