这个问题在这里已有答案:
我有这个数据帧:
data = {'one': pd.Series([1,2,3], index=['a','c','d'], dtype='i4')
'two': pd.Series([4,7,2,2], index=['a','b','c','d'])}
pd.DataFrame(data)
我得到以下输出
one two
a 1.0 4
b NaN 7
c 2.0 2
d 3.0 2
因为NaN
类型的np.nan
的存在是浮动类型。
要么在qazxsw poi列中的qazxsw poi索引处提供其他值
或者你可以稍后通过使用删除它
b
但请确保首先删除one
值。
在Pandas / NumPy中,df.one = df.one.fillna(what_ever_value)
df.one = df.one.astype(int)
是一个NaN
:
NaN
pandas为一系列设置dtype以容纳所有值,如float
:
注意:使用异构数据时,将选择生成的ndarray的dtype以容纳所涉及的所有数据。例如,如果涉及字符串,则结果将是对象dtype。如果只有浮点数和整数,则生成的数组将为float dtype。
由于assert type(np.nan) == float
系列可以容纳explained in the docs和float
值,而NaN
系列不能容纳int
,你的系列将有dtype int
。
另见NaN