我有这个数据框:
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
答案 0 :(得分:2)
在Pandas / NumPy中,NaN
是float
:
assert type(np.nan) == float
Pandas为系列设置dtype以容纳所有值,例如explained in the docs:
注意:在处理异构数据时,将选择结果ndarray的dtype容纳所有数据 参与。例如,如果涉及字符串,则结果将为 对象dtype。如果只有浮点数和整数,则结果 数组将为float dtype。
由于float
系列可以容纳NaN
和int
值,而int
系列不能容纳NaN
,因此您的系列将具有dtype {{1 }}。
答案 1 :(得分:2)
由于类型为.Connection = cn
.CommandText = "update [Sheet1$] set [Name]='" & txtName.Text & "',[Department]='" & cboDepartment.SelectedItem & "',[Problem]='" & txtProblem.Text & "',[Classification]='" & cboClass.SelectedItem & "',[Data/Time]='" & DTP.Value & "',[Solution]='" & txtSolution.Text & "',[Status]='" & txtStatus.Text & "',WHERE [ID]='" & IDEm.Text & "' "
.ExecuteNonQuery()
MsgBox("Successfully UPDATED", MsgBoxStyle.Information, "Success")
的{{1}}是浮点型。
在列NaN
的索引np.nan
处提供其他值
,或者您以后可以使用
将其删除b
但请确保先删除one
值。
答案 2 :(得分:1)
因为NaN
在列中,
NaN
是浮点数,
>>> import numpy as np
>>> type(np.nan)
<class 'float'>
>>>
它是浮点数,因为它有效:
>>> float('NaN')
nan
>>>
列中的所有内容都应为浮点数