Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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 熊猫:为什么在不同的条件下我会得到不同的格式编号?_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 熊猫:为什么在不同的条件下我会得到不同的格式编号?

Python 熊猫:为什么在不同的条件下我会得到不同的格式编号?,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个熊猫数据帧df,它包含nan和字符串\u MISSING。我想将值nan和\u MISSING设置为-1 df A B 0 4 _MISSING 1 NaN hello 2 3 tom 3 NaN _MISSING 这就是我正在做的: df.ix[df.A.isnull(), 'A'] = -1 df.ix[df.B == '_MISSING', 'B'] = -1 这就是结果 df A B 0 4

我有一个熊猫数据帧
df
,它包含
nan
和字符串
\u MISSING
。我想将值
nan
\u MISSING
设置为
-1

df   A       B
0    4   _MISSING
1   NaN    hello
2    3      tom
3   NaN  _MISSING
这就是我正在做的:

df.ix[df.A.isnull(), 'A'] = -1
df.ix[df.B == '_MISSING', 'B'] = -1
这就是结果

df   A       B
0    4      -1
1  -1.0    hello
2    3     tom
3  -1.0     -1
在哪里


熊猫将带有
NaN
的任何整数列强制转换为浮点

>>> df = pd.DataFrame({'a':[1,2,np.nan], 'b':['_MISSING', 'HELLO','World']})
>>> df.ix[df.a.isnull(), 'a'] = -1
>>> type(df.a[0])
<class 'numpy.float64'>

您可以将
B
中的选定值替换为
np.nan
,然后使用:


如果使用
read_csv
创建数据帧,可以传递参数“na_values=[''u MISSING']”。然后使用df.fillna(-1)确定最后一部分(浮点到int的转换)吗?我怀疑你只是捡起上一步放在那里的
-1
。@MarkDickinson啊!我在它之后执行了
df.ix[df.b=''u MISSING',b']=-1.0
,这显然不起作用。谢谢
>>> df = pd.DataFrame({'a':[1,2,np.nan], 'b':['_MISSING', 'HELLO','World']})
>>> df.ix[df.a.isnull(), 'a'] = -1
>>> type(df.a[0])
<class 'numpy.float64'>
>>> df.ix[df.b == '_MISSING', 'b'] = -1
>>> type(df.b[0])
<class 'int'>
>>> df.ix[df.b == '_MISSING', 'b'] = -1.0
>>> type(df.b[0])
<class 'float'>
import numpy as np

df.loc[df['B'] == '_MISSING', 'B'] = np.nan
df = df.fillna(-1)

print(df)

   df    A      B
0   0  4.0     -1
1   1 -1.0  hello
2   2  3.0    tom
3   3 -1.0     -1