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

python pandas groupby:用于分组的删除列

python pandas groupby:用于分组的删除列

阿晨1998 2022-05-24 16:14:29
print(my_df)   A    B    C0  1   20  0.11  1   30  0.22  1   40  0.33  2  200  0.74  2  300  0.85  2  400  0.9that I group by column 'A'grouped = my_df.groupby('A')that I transform into a list:grouped.apply(pd.Series.tolist)A1    [[1.0, 20.0, 0.1], [1.0, 30.0, 0.2], [1.0, 40....2    [[2.0, 200.0, 0.7], [2.0, 300.0, 0.8], [2.0, 4...However, I would like to get rid of the now redundant column 'A' values, to haveA1    [[20.0, 0.1], [30.0, 0.2], [40....2    [[200.0, 0.7], [300.0, 0.8], [4...the grouped object contains all three columns:grouped.obj.columnsIndex(['A', 'B', 'C'], dtype='object')but I cannot drop any of them:grouped.drop('A')AttributeError: Cannot access callable attribute 'drop' of 'DataFrameGroupBy' objects, try using the 'apply' methodhow can I use drop with apply?grouped.apply(pd.DataFrame.drop( ??? Thank youEdit:More concretely I am doinggrouped.apply(pd.Series.tolist).tolist()with this I obtain[[[1.0, 20.0, 0.1], [1.0, 30.0, 0.2], [1.0, 40.0, 0.3]], [[2.0, 200.0, 0.7], [2.0, 300.0, 0.8], [2.0, 400.0, 0.9]]]but I would like to have[[[20.0, 0.1], [30.0, 0.2], [40.0, 0.3]], [[200.0, 0.7], [300.0, 0.8], [400.0, 0.9]]]
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

试试下面的代码,希望对你有帮助:


df.set_index('A',inplace=True)

df.groupby('A').apply(pd.Series.tolist)

输出将是:


A

1       [[20.0, 0.1], [30.0, 0.2], [40.0, 0.3]]

2    [[200.0, 0.7], [300.0, 0.8], [400.0, 0.9]]

dtype: object


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号