我想我想要一些非常复杂的东西。 所以我有2个Pandas DataFrames,
contact_extrafields (将CSV文件转换为DataFrame):
contact_id departement age region size
0 17068CE3 5 19.5
1 788159ED 59 18 ABC
2 4796EDA9 69 100.0
3 2BB080E4 32 DEF 50.5
4 8562B30E 10 GHI 79.95
5 9602758E 67 JKL 23.7
6 3CBBA9F7 65 MNO 14.7
7 DAE5EE44 75 98 159.6
8 5B9E3410 49 10 PQR 890.1
...
datafield_types (将其转换为DataFrame的字典):
name datatype_id datafield_id datatype_name
0 size 1 4 float
1 region 2 3 string
2 age 3 2 integer
3 departement 3 1 integer
我想要一个这样的新DataFrame:
contact_id datafield_id string_value integer_value boolean_value float_value
0 17068CE3 4 19.5
1 17068CE3 3
2 17068CE3 2 5
3 17068CE3 1
4 788159ED 4
5 788159ED 3 ABC
6 788159ED 2 18
7 788159ED 1 59
....
DataFrame contact_extrafields 包含大约300万行。
编辑(例如):
如果我从DataFrame contact_extrafields 中获取contact_id 788159ED , 我将获取列的名称及其值,
在列的名称为 datafield_types 的DataFrame中检查值的类型
例如对于列部门,其值为 59 ,并且其类型根据DataFrame datafield_types 进行了集成,因此ID为 3 ,
它应该在新创建的DataFrame中插入一行,如下所示:
contact_id datafield_id string_value integer_value boolean_value float_value
0 788159ED 1 59
....
从数据框 datafield_types 中检索了 datafield_id ,这使我知道部门的联系人 788159ED (是整数),输入值 59 。
每列在我要创建的DataFrame中创建一行。
我尝试了很多使我内存不足的事情。
我的代码正在具有16千兆位内存的计算机上运行。
非常感谢!