我有一个问题,保留一些数据不重复,并希望将有价值的信息添加到数据框中的新列。
import pandas as pd
data = {'id':[1,1,2,2,3],'key':[1,1,2,2,1],'value0':['a', 'b', 'x', 'y', 'a']}
frame = pd.DataFrame(data, columns = ['id','key','value0'])
print frame
收率:
id key value0
0 1 1 a
1 1 1 b
2 2 2 x
3 2 2 y
4 3 1 a
期望的输出:
key value0_0 value0_1 value1_0
0 1 a b a
1 2 x y None
“id”列并不重要,但可以帮助进行迭代和分组。
我认为这可以适用于其他项目,在这些项目中您不知道一组键存在多少值。
答案 0 :(得分:2)
function updateStackColor(alpha) {
return function() {
const x = this.x
const color = Highcharts.color
const colors = Highcharts.getOptions().colors
this.series.chart.series.forEach((series, i) => {
series.data.forEach(point => {
const basePointColor = color(colors[i])
point.update({
color: alpha === 0
? basePointColor.get() // set original color
: point.x === x
? basePointColor.brighten(alpha).get() // brighten original color
: basePointColor.brighten(-alpha).get() // dim orignal color
}, false)
})
})
this.series.chart.redraw(false)
}
}
包括set_index
和cumcount
unstack
我正在质疑你的列标签,但这是一种使用二进制
的方法frame.set_index(
['key', frame.groupby('key').cumcount()]
).value0.unstack().add_prefix('value0_').reset_index()
key value0_0 value0_1 value0_2
0 1 a b a
1 2 x y None