簡體   English   中英

熊貓如何在列上填充文本?

[英]Pandas how to fillna in place on a column?

運行后:

df[['column']].fillna(value=myValue, inplace=True)

要么:

df['column'].fillna(value=myValue, inplace=True)

要么:

# Throws warning "A value is trying to be set on a copy of a slice..."
df.fillna({'column': myValue}, inplace=True)

要么:

df[['column']] = df[['column']].fillna({'column': myValue})

要么:

df['column'] = df['column'].fillna({'column': myValue})

我的df['column']仍然包含nan (!)

list(df['column'].unique())返回['a', 'b', 'c', 'd', nan]並且sum(pd.isnull(df['column']))返回1,000 +。

我嘗試了幾種變體,但此問題仍然存在。 您如何在大熊貓的某列上填充?

Ed Chum的評論正確地指出了您所建議的方法之間的差異。 這是我用來顯示其工作原理的示例。

import pandas as pd
import numpy as np

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, np.nan, np.nan]}
df = pd.DataFrame(data=d)

df
   col1  col2
0     1   3.0
1     2   4.0
2     3   NaN
3     4   NaN
df['col2'].fillna(value=6, inplace=True)
   col1  col2
0     1   3.0
1     2   4.0
2     3   6.0
3     4   6.0

發布此內容后,我認為查看my_value變量的值和數據my_value的外觀是最有價值的。

我放棄了Aditya的假設。 如果nan是一個字符串,它會出現在引號之間,而不會出現。

希望這可以幫助!

造成此問題的一個原因可能是數據集中的nan值可能是字符串“ nan”而不是NaN。 要解決此問題,可以使用replace()方法代替fillna()。

例如代碼:

df['column'].replace(to_replace='nan',value=myValue,inplace=True)

首先,您列表中的正確語法是

df['column'].fillna(value=myValue, inplace=True)

如果list(df['column'].unique())返回['a', 'b', 'c', 'd', nan] ,則意味着數據集中的值可能不等於np.NaN ,但等於字符串“ nan”。

暫無
暫無

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

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