为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用pandas中的排序特征顺序生成新特征?

如何使用pandas中的排序特征顺序生成新特征?

翻阅古今 2021-12-17 14:34:45
我有一个数据集,我按 2 个不同的参数对其进行分组,并得到如下内容:idx name timea   andy  2a   andy  5a   andy  4b   andy  3b   andy  7b   andy  9等等。我需要的是生成特征,以便数据集如下所示: idx name time1 time2 time3  a   andy   2     4     5应该对时间进行排序,并且应该使用它们的顺序来生成特征。我正在努力想出如何实施它的任何想法。
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

您需要排序,然后使用groupby+生成列索引cumcount。现在pivot_table出问题了,最后我们可以清理MultiIndex。


df = df.sort_values(['idx', 'time'])

df['idx2'] = df.groupby('idx').cumcount()+1


df1 = df.pivot_table(index=['idx', 'name'], columns='idx2').rename_axis([None, None], axis=1)


# Move everything to simple columns

df1.columns = [''.join(map(str, x)) for x in df1.columns]

df1 = df1.reset_index()

输出df1::

  idx  name  time1  time2  time3

0   a  andy      2      4      5

1   b  andy      3      7      9


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信