簡體   English   中英

Pandas 在 pivot 操作后用零替換 NaN 值

[英]Pandas replace NaN values with zeros after pivot operation

我有一個像這樣的 DataFrame:

Year    Month     Day      Rain (mm)

2021      1        1          15

2021      1        2          NaN

2021      1        3          12

依此類推(有多年)。 我使用pivot_table function 將 DataFrame 轉換為:

Year         2021     2020    2019    2018   2017
Month  Day
1       1     15
        2     NaN
        3     12

我用了:

df = df.pivot_table(index=['Month', 'Day'], columns='Year',
                 values='Rain (mm)', aggfunc='first')

現在我想用每列中的零替換所有NaN值和可能的-1值(列我的意思是年),但我無法這樣做。 我努力了:

df = df.fillna(0)

並且:

df.loc[df['Rain (mm)'] == NaN, 'Rain (mm)'] = 0

但兩者都不起作用,沒有錯誤消息/異常,dataframe 保持不變。 我做錯了什么? 任何建議都受到高度贊賞。

我認為問題是NaN是字符串,所以不能替換它們,所以首先嘗試將值轉換為數字:

df['Rain (mm)'] = pd.to_numeric(df['Rain (mm)'], errors='coerce')

df = df.pivot_table(index=['Month', 'Day'], columns='Year',
             values='Rain (mm)', aggfunc='first').fillna(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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