如何使用带有关键字参数的replace()方法替换空字符串

时间:2018-06-13 17:44:38

标签: python pandas

我尝试使用 pandas.DataFrame.replace()通过以下代码填充框架中的空字符串。

main_datasets = [train_data,test_data,alt_data1,alt_data2]

for data in main_datasets:
    for x in data:
        if type(x) == 'int':
            x.fillna(x.median(), inplace = True)
        elif type(x) == 'float':
            x.fillna(x.median(), inplace = True)
        else:
            x.replace(to_replace = None, value = 'N/A', inplace = True)    

但是,尽管使用了关键字值的字符或数字并删除了关键字名称,我仍然会收到以下异常:

TypeError: replace() takes no keyword arguments

为什么这个错误来自" 值=' N / A?' "

以下是某些字段的特定示例(以逗号分隔):

  

12123423,0,M,Y,120432.5

     

12654423,1,F,N,80432.5

     

12123423,0,M,Y,120432.5

     

12123423,0,M,Y,120432.5

2 个答案:

答案 0 :(得分:2)

您正在尝试使用pandas.DataFrame.replace()方法,但实际上您正在使用string.replace方法。

我怀疑所有这一切都会失败,但是你首先在非int而不是float案件中遇到失败。如果x是int,则它不是DataFrame,并且不具有.fillna方法。类似地,字符串具有Python的替换方法,但具有不同的函数签名。

df.replace() vs string.replace()

str.replace(old, new[, max])

vs

DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)

我还怀疑你正在尝试使用Series.dtype而不是输入。

答案 1 :(得分:0)

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html

正如评论中所提到的那样

x.replace(None, 'N/A', True)