我尝试使用Pandas和Pyarrow来获取拼花数据。我有数百个parquet文件不需要有相同的模式,但是如果parquets中的列匹配,那么它们必须具有相同的数据类型。在
我遇到了这样的情况:最终的拼花地板数据类型不是我想要的。例如,我可以将int64
写入一个列,结果拼花将是double
格式。这在处理端造成了很多麻烦,99%的数据被正确输入,但在1%的情况下,它只是错误的类型。在
我尝试过导入numpy并用这种方式包装值-
import numpy as np
pandas.DataFrame({
'a': [ np.int64(5100), np.int64(5200), np.int64(5300) ]
})
但我还是偶尔得到双份的,所以这肯定是错误的做法。如何确保数据类型在parquet文件的列之间是一致的?在
更新-
我发现只有当列包含一个或多个None
s时才会发生这种情况
拼花地板不能处理混合的非int64颜色吗?在
Pandas本身目前无法处理整数列中的null/na值(版本0.23.x)。在下一个版本中,将有一个可为null的整数类型。同时,一旦整数列中有一个空值,Pandas会自动将其转换为float列。因此,在生成的拼花地板文件中还有一个浮点列:
相关问题 更多 >
编程相关推荐