pandas数据框到功能和标签

时间:2018-01-13 23:34:08

标签: python pandas numpy

这是我想要转换为要素和标签列表/数组的数据框。

enter image description here

数据框表示重量和区域ID的Fedex地面运输费率(数据框的列)。 功能必须如下所示

[weight,zone] 
e.g. [[1,2],[1,3] ...[1,25],[2,2],[2,3] ...[2,25]....[8,25]]

与之对应的标签基本上是运费,

[[shipping charge]]
e.g. [[8.95],[9.44] .....[35.18]]

虽然我正在使用以下代码,但我确信必须有更快,更优化且更直接的方法来实现这一点,无论是使用数据帧还是numpy

i=0
j=0
for weight in df_ground.Weight:
    for column in column_list[1:]: # skipping the weight column !
        features[j] = [df_ground.Weight[i],column]
        labels[j] = df_ground[column][df_ground['Weight'] == df_ground.Weight[i]]
        j +=1
    i +=1

对于大小为2700的数据帧,此代码需要1到2秒。我想以更优化的方式提出建议。

1 个答案:

答案 0 :(得分:0)

首先,制作“重量”'索引并混合索引和列:

  - KAFKA_ADVERTISED_PORT=9092

现在,您的新索引是您的功能,数据列是您的标签:

mixed = df_ground.set_index('Weight').stack()

#Weight   
#1       2     8.95
#        3     9.44
#        4     9.89
#....
#2       2     9.24
#        3     9.92
#        4    10.41