这是我想要转换为要素和标签列表/数组的数据框。
数据框表示重量和区域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秒。我想以更优化的方式提出建议。
答案 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