如何使用np.arange将级数除以级数类型

2024-04-27 03:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是我上传的png插图,主要有两列,其中有数字。带星号的代码告诉我类和“平方英里”。百分比列更难获取。我将序列号数组除以该列的总序列,但没有成功。这个部门如何才能完成

Total = ca_land.get("SquareMiles")
Total1 = Total.sum()

percent = np.arange(Total/Total1)

* ca_classess = ca_land.groupby('Class').sum()

ca_classes = ca_classess.assign(
    Percentage = percent

)

enter image description here

样本数据:

{'Class': {52: 'Forest & Woodland',   126: 'Forest & Woodland',   128: 'Forest & Woodland',   131: 'Forest & Woodland',   133: 'Forest & Woodland'},  'EcologicalSystem': {52: 'East Gulf Coastal Plain Near-Coast Pine Flatwoods - Open Understory Modifier',   126: 'California Central Valley Mixed Oak Savanna',   128: 'California Coastal Closed-Cone Conifer Forest and Woodland',   131: 'California Coastal Live Oak Woodland and Savanna',   133: 'California Lower Montane Blue Oak-Foothill Pine Woodland and Savanna'},  'SquareMiles': {52: 0.03266424261286,   126: 4350.262402786333,   128:
85.94309723386156,   131: 1726.1481557315549,   133: 6587.099312156705}}

Tags: andcatotalsumpercentlandforestsavanna
1条回答
网友
1楼 · 发布于 2024-04-27 03:05:17

我认为在聚合sum之后,有必要划分SquareMiles列:

d = {'Class': {52: 'Forest & Woodland1', 126: 'Forest & Woodland1', 128: 'Forest & Woodland1', 131: 'Forest & Woodland', 133: 'Forest & Woodland'}, 'EcologicalSystem': {52: 'East Gulf Coastal Plain Near-Coast Pine Flatwoods - Open Understory Modifier', 126: 'California Central Valley Mixed Oak Savanna', 128: 'California Coastal Closed-Cone Conifer Forest and Woodland', 131: 'California Coastal Live Oak Woodland and Savanna', 133: 'California Lower Montane Blue Oak-Foothill Pine Woodland and Savanna'}, 'SquareMiles': {52: 0.03266424261286, 126: 4350.262402786333, 128: 85.94309723386156, 131: 1726.1481557315549, 133: 6587.099312156705}}
ca_land = pd.DataFrame(d)

Total1 = ca_land['SquareMiles'].sum()
ca_classes = (ca_land.groupby('Class').sum()
                     .assign(Percentage=lambda x: x['SquareMiles'] / Total1))
print (ca_classes)
                    SquareMiles  Percentage
Class                                      
Forest & Woodland   8313.247468    0.652046
Forest & Woodland1  4436.238164    0.347954

或不带赋值的解决方案更易于阅读:

ca_classes = ca_land.groupby('Class').sum()
ca_classes['Percentage'] =  ca_classes['SquareMiles'] / ca_land['SquareMiles'].sum()
print (ca_classes)
                    SquareMiles  Percentage
Class                                      
Forest & Woodland   8313.247468    0.652046
Forest & Woodland1  4436.238164    0.347954

相关问题 更多 >