簡體   English   中英

.loc 和 np.nan 的問題

[英]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

我認為前三行很好,問題出在第四行。 您在兩個維度上“定位”:

  1. 包含“Thomas High School”和“9th”年級的行。
  2. 包含...閱讀分數的列? 我敢打賭這不是你想要的。 我敢打賭,您想要的是 select 將 reading_score 列設置為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM