使用转换表

时间:2016-11-15 10:42:43

标签: python python-2.7

我正在为我的小项目构建一些需要翻译成我自己数据的数据框。

我有以下属性表作为示例:

ID  date        road_tpe    dmg       name
1   11-11-2016  elements              A street
2   11-11-2016  asphalt     B         A street
3   11-11-2016  asphalt     A         B street
4   11-11-2016  concrete    A         C street

结果应该是

ID  date_of_construction    road_type   damage_asphalt  damage_concrete street_name
1   11-11-2016              03          null            null            01
2   11-11-2016              01          02              null            01
3   11-11-2016              01          01              null            02
4   11-11-2016              02          null            01              03

我制作了一个标准化的Excel翻译表,可以轻松地将我的输入数据转换为我想要的数据/我自己的风格。

category_old    value_old   category_new            sort_of_data    value_new   split_category  split_value

date                        date_of_construction    date            

road_tpe        asphalt     road_type               existing_list   1       
road_tpe        concrete    road_type               existing_list   2       
road_tpe        elements    road_type               existing_list   3       

dmg             A           damage_asphalt          split           1           road_tpe        asphalt
dmg             B           damage_asphalt          split           2           road_tpe        asphalt

dmg             A           damage_concrete         split           1           road_tpe        concrete

name            street_name                         new_list            

首先,您将获得所有category_old独特功能的列表,以启动循环并检查Sort_of_data中的数据类型。 根据什么数据,您可以执行以下操作。 对于date_of_construction,这将是:

if sort_of_date == date:
 string(category_new[1]) = date ##meaning: date_of_construction takes over the values of date

对于road_tpe,这应该是这样的:

if sort_of_date == existing_list:
    *** make list of unique values based on the category_old and Value_old 
    for i in (length list)
        if value_old of road_tpe == value_old_list[i]
            value_old = value_new

if sort_of_date == split:  将road_tpe考虑在内的分割(road_tpe应存储在额外属性split_category和split_value中)  之后它与上面相同

if sort_of_date == new_list:     列出所有唯一值并创建一个将要导出的新表(名称,代码,顺序)     代码只是一个计数变换器     order是按字母顺序排列的列表     在此之后,所有街道名称都应该被代码替换。

这是解决这个问题的正确方法吗?

0 个答案:

没有答案