如何对丢弃熊猫数据框行的代码进行功能化?

时间:2019-01-04 22:26:48

标签: python pandas

我有一个熊猫数据框,其中的列有时具有nan值。我知道我可以使用pandas自己的dropna函数来删除这些函数,但是在这种情况下,我想编写自己的函数,这样我就可以分别调用每一列,所以我这样写:

data = pd.read_csv('data.csv')
def remove_nans_from_column(column_name):
    data = data[~data[column_name].isna()]
remove_nans_from_column('bmi')

但是运行此命令会产生此错误:

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-28-3be0ddcb71ff> in <module>()
----> 1 remove_nans_from_column('bmi')

<ipython-input-26-911d33fb618e> in remove_nans_from_column(column_name)
      1 def remove_nans_from_column(column_name):
----> 2     data = data[~data[column_name].isna()]

UnboundLocalError: local variable 'data' referenced before assignment

我知道变量数据不是在函数内部定义的,但是应该可以从其余代码中获取。

data = data[~data['bmi'].isna()]

当它不在函数内部时起作用,为什么它在函数中不起作用?

我对这里出现此错误的原因感到好奇,而不是如何解决已经可以解决的问题。

0 个答案:

没有答案