[英]Issue with .loc and np.nan
我遇到了以下代碼的問題:
student_data_df.loc[(student_data_df.school_name=="Thomas High School") & (student_data_df.grade=='9th'), student_data_df.reading_score] = np.nan
基本上我試圖在 dataframe 上使用 .loc 來提取特定的學校名稱和年級,然后將列中的所有分數更改為 NaN 以使其無效。 但是,我遇到了一個問題,當我嘗試運行單元時,什么也沒有發生。 沒有錯誤,沒有打印。
我究竟做錯了什么?
將您的代碼分成單獨的行以使其易於理解和調試:
school_matches = student_data_df.school_name=="Thomas High School"
grade_matches = student_data_df.grade=='9th'
rows = school_matches & grade_matches
column = student_data_df.reading_score
student_data_df.loc[rows, column] = np.nan
我認為前三行很好,問題出在第四行。 您在兩個維度上“定位”:
nan
。 為此,您需要:column = 'reading_score'
我們現在要做的是定位名為“reading_score”的列,而不是定位分數的值(這是荒謬的)。
參考: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.