我有来自 Excel 工作表的数据,我在 Pandas 交叉表中进行了汇总。我想通过对相关行求和来进一步对数据进行分类。
这是我的交叉表:
class_of_orbit Elliptical GEO LEO MEO All
users
Civil 0 0 36 0 36
Civil/Government 0 0 2 0 2
Commercial 3 99 412 0 514
Government 9 14 38 0 61
Government/Civil 0 0 10 0 10
Government/Commercial 0 2 81 0 83
Government/Military 0 0 1 0 1
Military 9 67 66 0 142
Military/Civil 0 0 2 0 2
Military/Commercial 0 0 0 32 32
All 21 182 648 32 883
我只想要 4 个组:civil、govt、commercial 和 military。如果名称中有“政府”,我想对包含它的所有行求和。如果名称中有“军事”,我想将这些行汇总为军事行....
执行此操作的最佳方法是什么?
pd.crosstab
从头开始
pd.crosstab(df.users.str.split('/').str[0], df.class_of_orbit)
分组方式
在您已有的基础上。如果您将可调用对象传递给 groupby
,它会将其应用于索引并将结果用作分组依据。
xtab.groupby(lambda x: x.split('/')[0]).sum()
Elliptical GEO LEO MEO All
All 21 182 648 32 883
Civil 0 0 38 0 38
Commercial 3 99 412 0 514
Government 9 16 130 0 155
Military 9 67 68 32 176
我是一名优秀的程序员,十分优秀!