Python 如果列数据类型的所有元素都为null,如何强制转换该列数据类型?
我的数据库中有一些属性,从这个大数据集开始,我必须将其拆分为不同的拼花文件:每天1个 每个拼花文件的列必须具有相同的数据类型,但是通常情况下,一天中某个特定属性的所有记录都为Null,因此列的数据类型似乎为Null,而当至少有一个有效记录时,数据类型具有正确的类型。对于我的应用程序来说,每个拼花地板文件都具有相同的数据类型是很重要的。我怎样才能获得这个结果 具体而言,有4种情况:Python 如果列数据类型的所有元素都为null,如何强制转换该列数据类型?,python,pandas,parquet,pyarrow,Python,Pandas,Parquet,Pyarrow,我的数据库中有一些属性,从这个大数据集开始,我必须将其拆分为不同的拼花文件:每天1个 每个拼花文件的列必须具有相同的数据类型,但是通常情况下,一天中某个特定属性的所有记录都为Null,因此列的数据类型似乎为Null,而当至少有一个有效记录时,数据类型具有正确的类型。对于我的应用程序来说,每个拼花地板文件都具有相同的数据类型是很重要的。我怎样才能获得这个结果 具体而言,有4种情况: 日期时间列 整数列 字符串列 浮柱 为了给出一个例子,我将复制2个parquets文件的粘贴列模式。 这是两个帕奎特
NEW1 NEW2 NEW3
0 {"id":{"VAR1": 1}} {"AA":{"VAR2": 2, "ACTUAL_END": "2002-03-01T13:00:00Z"}} {"TS": 6}
1 {"id":{"VAR1": 2}} {"AA":{"VAR2": 4, "ACTUAL_END": "2002-03-01T13:00:00Z"}} {"TS":12}
2 {"id":{"VAR1": 3}} {"AA":{"VAR2": 6, "ACTUAL_END": None}} {"TS":18}
3 {"id":{"VAR1": 4}} {"AA":{"VAR2": 8, "ACTUAL_END": None}} {"TS":24}
4 {"id":{"VAR1": 5}} {"AA":{"VAR2":10, "ACTUAL_END": "2002-03-01T13:00:00Z"}} {"TS":30}
5 {"id":{"VAR1": 6}} {"AA":{"VAR2":12, "ACTUAL_END": "2002-03-01T13:00:00Z"}} {"TS":36}
这是我尝试使用检查文件时的结果
import pyarrow.parquet as pq
pfile = pq.read_table("my_transformed.parquet")
print("Schema: {}".format(pfile.schema))
第一种情况,每个属性至少有一条有效记录
Schema:_myschema:struct您如何创建最终保存到拼花地板文件中的表?通常,在创建表时应该有一种方法来指定模式,这样它就不必猜测了。我正在读取一个csv,我在日期上迭代拆分它,然后将每个块保存为拼花文件。创建块后,如果其在列中的所有记录都为null,则列类型为null。明天我将更新我的示例,这样您就可以创建自己的pandas数据帧,只需将其复制粘贴到“pd.dataframe.from_dict()”中,然后检查自己的数据类型。在将区块转换为pyarrow/将其写入parquet时,我将更新您,您应该能够指定要使用的模式。
import pyarrow.parquet as pq
pfile = pq.read_table("my_transformed.parquet")
print("Schema: {}".format(pfile.schema))