簡體   English   中英

如何將fillna應用於pandas dataframe的最后N列?

[英]How to apply fillna to last N columns of a pandas dataframe?

我有一個包含許多列的數據框。 我想用 0 填充最后 x 列的 nan。 我使用了以下代碼,但它似乎不起作用。

df.iloc[:, -10:-1].fillna(value=0, inplace=True)

我究竟做錯了什么? 當我專門按名稱引用列時:

df['column_a'].fillna(value=0, inplace=True)

它有效,但我不想一次只做一列。

一個應該在這里工作的食譜是

df.iloc[:, -x:] = df.iloc[:, -x:].fillna(value=0)

這里的一個可重現的例子是

import pandas as pd
df = pd.DataFrame({'col1':range(10),
                   'col2':range(1, 11), 
                   'col3':range(2, 12),
                   'col4':range(3, 13),
                   'col5':range(4, 14)})

# pepper with NaNs
df.iloc[8, 2] = None
df.iloc[8, 3] = None
df.iloc[8, 4] = None

# apply fillna change to last 2 cols
x = 2
df.iloc[:, -x:] = df.iloc[:, -x:].fillna(value=0)

print(df)

暫無
暫無

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

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