熊猫:2个数据框到1个条件的数据框

时间:2019-07-24 15:40:29

标签: python-3.x pandas dataframe

我想我想要一些非常复杂的东西。 所以我有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中创建一行。

  • 可以用熊猫吗?
  • 如何做到?
  • contact_extrafields 中的列可以更改(所以我也将更改 datafield_types 名称)

我尝试了很多使我内存不足的事情。

我的代码正在具有16千兆位内存的计算机上运行。

非常感谢!

0 个答案:

没有答案