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
添加回答
举报
0/150
提交
取消