我想通过基于列进行分组并将子索引(在另一列中)与其他两个列名连接起来,从熊猫数据框中创建新列。这最好用一个例子来说明。说这是我的输入数据框:
filename sub_id x y
0 2019-07-29T16-01-33.jpg 0 731 343
1 2019-07-29T16-01-33.jpg 1 741 283
2 2019-07-29T16-01-34.jpg 0 734 407
3 2019-07-29T16-01-34.jpg 1 757 348
4 2019-07-29T16-01-35.jpg 0 741 293
5 2019-07-29T16-01-35.jpg 1 760 380
我想获得这个:
filename x0 y0 x1 y1
0 2019-07-29T16-01-33.jpg 731 343 741 283
1 2019-07-29T16-01-34.jpg 734 407 757 348
2 2019-07-29T16-01-35.jpg 741 293 760 380
的sub_id
值(0或1)被附加到x
和y
列名以创建新的列和相应的坐标值随之转移。
我假设我必须以某种方式使用 groupby 或加入,但不确定如何使用。
还有一种方法:
# create the columns for x0, x1, y0, y1
df_unstacked= df.set_index(['filename', 'sub_id']).unstack(-1)
# rename the column
df_unstacked.columns= [''.join(map(str, c_tup)) for c_tup in df_unstacked.columns]
结果是
x0 x1 y0 y1
filename
2019-07-29T16-01-33.jpg 731 741 343 283
2019-07-29T16-01-34.jpg 734 757 407 348
2019-07-29T16-01-35.jpg 741 760 293 380
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句