Python 使用可为空的整数数据类型创建数据帧

Python 使用可为空的整数数据类型创建数据帧,python,pandas,dataframe,integer,missing-data,Python,Pandas,Dataframe,Integer,Missing Data,如何使用可为空的整数数据类型创建数据帧 下面的例子有什么问题 将熊猫作为pd导入,numpy作为np导入 #工作 数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)}) #TypeError:无法理解数据类型 #TypeError:值必须是1D列表,如 pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8') 非常感谢你的帮助 这三个都对我有用,你应该有'uint8',而不是'uint8

如何使用可为空的整数数据类型创建数据帧

下面的例子有什么问题

将熊猫作为pd导入,numpy作为np导入
#工作
数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)})
#TypeError:无法理解数据类型
#TypeError:值必须是1D列表,如
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8')

非常感谢你的帮助

这三个都对我有用,你应该有
'uint8'
,而不是
'uint8'

>>将熊猫作为pd导入
>>>将numpy作为np导入
>>>数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)})
x
0  1
1  1
>>>pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8')
x
0  1
1  1
>>>pd.DataFrame(index=list(range(2)),data={'x':[np.uint8(1)]},dtype='uint8')
x
0  1
1  1

这三种方法对我都有效,你应该有
'uint8'
而不是
'uint8'

>>将熊猫作为pd导入
>>>将numpy作为np导入
>>>数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)})
x
0  1
1  1
>>>pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8')
x
0  1
1  1
>>>pd.DataFrame(index=list(range(2)),data={'x':[np.uint8(1)]},dtype='uint8')
x
0  1
1  1

似乎,如果允许缺少值,则必须在初始化期间使用正确数量的元素:

#有效
数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)})
#不起作用
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8')
#工作
pd.DataFrame(index=list(range(2)),data={'x':[np.uint8(1)]*2},dtype='uint8')

似乎,如果允许缺少值,则必须在初始化期间使用正确数量的元素:

#有效
数据帧(索引=列表(范围(2)),数据={'x':np.uint8(1)})
#不起作用
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype='uint8')
#工作
pd.DataFrame(index=list(range(2)),data={'x':[np.uint8(1)]*2},dtype='uint8')

pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype=np.uint8)
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype=type('uint8')
使用'Int64':
df pd.DataFrame({'x':[1,2,np.nan},dtype='Int64')
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype=np.uint8)
pd.DataFrame(index=list(range(2)),data={'x':np.uint8(1)},dtype=type('uint8'))
?使用'Int64':
df pd.DataFrame({'x':[1,2,np.nan},dtype='Int64')
pd.DataFrame({'x':[1]},dtype='UInt8')
在pandas 1.0上运行。
pd.DataFrame({'x':[1]},dtype='UInt8')
在pandas 1.0上运行。