に基づいて更新行私はパンダのデータフレームを有する、DFは、のように:Pythonのパンダ:別の行の値
name | grade | grade_type
---------------------------
sarah | B | letter
alice | A | letter
eliza | C | letter
beth | 76 | numeral
jones | 90 | numeral
df
のすべての値は、数値を含む文字列です。私が取得し、grade_type
列をチェックするに基づいて、手紙にgrade
数値を変換したい:
name | grade | grade_type
---------------------------
sarah | B | letter
alice | A | letter
eliza | C | letter
beth | B | numeral
jones | A | numeral
完全にするために、数字・ツー・レターグレードの変換は、次のとおりです。
A: grade > 80
B: 70 < grade <= 80
C: 60 < grade <= 70
なぜdoesnのこの作品はありませんか?
for index, row in df.iterrows():
if row.grade_type == "numeral":
grade_val = int(row.grade.values[0])
if grade_val > 80:
row.grade = "A" # This assignment doesn't update row.grade!
elif...
代替はdf.apply(...lambda:...)
を使用しているが、私たちはgrade
値を更新するかどうかを決定する前にgrade_type
列をチェックする必要があるため、それをやってのけるする方法があまりにもわかりません。