Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取';TypeError:数据类型不理解';用熊猫中以前的非零值替换零时_Python_Python 3.x_Pandas_Replace - Fatal编程技术网

Python 获取';TypeError:数据类型不理解';用熊猫中以前的非零值替换零时

Python 获取';TypeError:数据类型不理解';用熊猫中以前的非零值替换零时,python,python-3.x,pandas,replace,Python,Python 3.x,Pandas,Replace,当尝试执行一行代码时,我得到“TypeError:数据类型未理解”,如下所示: df['c'].replace(0, method='ffill', inplace=True) 上面的代码基本上是用列c中以前的非零值替换每个零值。列c中的值的数据类型是只包含两个NaN的整数。在将NAN替换为零后,仍然会发生此错误,但在上面的代码之前添加以下行时,它可以正常工作: df.dropna(inplace = True) 那么这里到底发生了什么?如何用列c中的前一个非零值替换每个零值,而不删除数据帧

当尝试执行一行代码时,我得到“TypeError:数据类型未理解”,如下所示:

df['c'].replace(0, method='ffill', inplace=True)
上面的代码基本上是用列
c
中以前的非零值替换每个零值。列
c
中的值的数据类型是只包含两个NaN的整数。在将NAN替换为零后,仍然会发生此错误,但在上面的代码之前添加以下行时,它可以正常工作:

df.dropna(inplace = True)

那么这里到底发生了什么?如何用列
c
中的前一个非零值替换每个零值,而不删除数据帧中带有NaN的任何行?

假设所有缺失的数据都得到了处理,即
NaN
替换为某个所需的值

some_desired_value = 0 # Maybe different in your case
df['c'] = df['c'].fillna(some_desired_value)
NaN
替换零,然后向前填充

df['c'].replace(0, pd.np.nan).ffill()
若列中并没有不需要的值,那个么即使您的代码也应该可以工作

df['c'].replace(0, method='ffill', inplace=True)

假设所有缺失的数据都得到了处理,即用某个期望值替换了
NaNs

some_desired_value = 0 # Maybe different in your case
df['c'] = df['c'].fillna(some_desired_value)
NaN
替换零,然后向前填充

df['c'].replace(0, pd.np.nan).ffill()
若列中并没有不需要的值,那个么即使您的代码也应该可以工作

df['c'].replace(0, method='ffill', inplace=True)


你能发布代表输入和预期输出的数据帧的某些部分吗?列“c”的
dtype
是什么?尝试
df['c']。替换(0,pd.np.nan).ffill()
?@Vishnudev ah,它按预期工作。谢谢除非您发布所有真实数据,否则无法真正回答原因。您是否可以发布数据帧中表示输入和预期输出的部分?列“c”的
dtype
是什么?请尝试
df['c'].replace(0,pd.np.nan).ffill()
?@Vishnudev ah,它按预期工作。谢谢没有办法真正回答为什么,除非你发布所有真实的数据。这很好。但是为什么使用我的代码会发生错误呢?正如我所说,列中可能有一些不需要的值。也许它看不见。它可能是一些非ASCII字符。为此,您需要更仔细地评估数据。此外,请尝试使用
pd.to_numeric
查看是否引发错误。我使用数据类型“Int32”以便它能够处理数据。您的意思是什么?您是否使用了
astype
?这很好用。但是为什么使用我的代码会发生错误呢?正如我所说,列中可能有一些不需要的值。也许它看不见。它可能是一些非ASCII字符。为此,您需要更仔细地评估数据。此外,请尝试使用
pd.to_numeric
查看是否引发错误。我使用数据类型“Int32”以便它能够处理数据。您的意思是什么?您是否使用了
aType