我有一个15000个村庄的数据集,对于1个地区,有12个街区/塔鲁卡,在该地区种植了几种作物,我必须检查该村庄的作物播种面积,并为每种作物随机抽样选择10个村庄,我的第一步是删除数据集中的0个播种面积村庄,在移除0个播种区域后,我得到6674个村庄,接下来我检查在一个地区,在一个街区/塔鲁卡还有多少村庄,所以我使用pivot和group by函数来检查。pivot之后,我可以看到在一个block/taluka中只剩下不到10个村庄,所以在这段时间内,我需要删除给出不到10个村庄输出的block/taluka,但接下来我将很难使用count函数获取数据,pivot表只给出了102,42….等,但我可以看到实际的数据村名称,种植面积在高等教育等…这是我的代码
import pandas as pd
import numpy as np
d=pd.read_excel("/media/desktop/District.xlsx","Data")
d.drop(d.loc[d['Area in hec']==0].index, inplace=True)
d.count()
Sr no 6674
District 6674
Taluka 6674
Revenue Circle 6674
Village Name 6674
Crop 6674
Area in hec 6674
pivot = d.pivot_table(index=['Taluka','Crop'], values=['Area in hec'], aggfunc='count')
pivot=pivot.reset_index()
pivot.loc[pivot['Area in hec'] >= 10]
Taluka Crop Area in hec
0 Ahmednagar Bajra 102
2 Ahmednagar Cotton 33
3 Ahmednagar Greengram 86
4 Ahmednagar Maize 77
5 Ahmednagar Redgram 24
6 Ahmednagar Soyabean 74
7 Akole Bajra 78
8 Akole Blackgram 29
10 Akole Groundnut 162
11 Akole Maize 91
12 Akole Paddy 125
13 Akole Soyabean 129
14 Jamkhed Bajra 86
15 Jamkhed Blackgram 87
16 Jamkhed Cotton 86
17 Jamkhed Greengram 87
18 Jamkhed Groundnut 13
19 Jamkhed Maize 87
20 Jamkhed Onion 47
21 Jamkhed Redgram 87
22 Jamkhed Soyabean 65
23 Karjat Bajra 119
24 Karjat Blackgram 111
25 Karjat Cotton 106
26 Karjat Greengram 118
27 Karjat Groundnut 34
28 Karjat Maize 119
29 Karjat Onion 107
30 Karjat Redgram 103
31 Karjat Sesame(Til) 10
.. ... ... ...
63 Pathardi Groundnut 118
64 Pathardi Maize 123
65 Pathardi Onion 77
66 Pathardi Redgram 132
67 Pathardi Sesame(Til) 25
68 Pathardi Soyabean 26
70 Rahuri Bajra 44
72 Rahuri Cotton 72
73 Rahuri Greengram 20
75 Rahuri Maize 54
77 Rahuri Soyabean 60
78 Sangamner Bajra 163
80 Sangamner Cotton 39
81 Sangamner Greengram 37
82 Sangamner Groundnut 75
83 Sangamner Maize 179
84 Sangamner Redgram 46
85 Sangamner Soyabean 137
86 Shevgaon Bajra 98
88 Shevgaon Cotton 112
89 Shevgaon Greengram 31
90 Shevgaon Groundnut 41
91 Shevgaon Maize 54
92 Shevgaon Onion 31
93 Shevgaon Redgram 98
94 Shevgaon Soyabean 15
95 Shrirampur Bajra 15
96 Shrirampur Cotton 50
97 Shrirampur Maize 54
99 Shrirampur Soyabean 40
[85 rows x 3 columns]
此外,我还尝试了groupby函数
Groupby=d.groupby(['Taluka', 'Crop'])['Village Name'].aggregate('count')
Groupby
Taluka Crop
Ahmednagar Bajra 102
Blackgram 3
Cotton 33
Greengram 86
Maize 77
Redgram 24
Soyabean 74
Akole Bajra 78
Blackgram 29
Greengram 9
Groundnut 162
Maize 91
Paddy 125
Soyabean 129
Jamkhed Bajra 86
Blackgram 87
Cotton 86
Greengram 87
Groundnut 13
Maize 87
Onion 47
Redgram 87
Soyabean 65
Karjat Bajra 119
Blackgram 111
Cotton 106
Greengram 118
Groundnut 34
Maize 119
Onion 107
...
Rahuri Bajra 44
Blackgram 1
Cotton 72
Greengram 20
Groundnut 8
Maize 54
Redgram 7
Soyabean 60
Sangamner Bajra 163
Blackgram 7
Cotton 39
Greengram 37
Groundnut 75
Maize 179
Redgram 46
Soyabean 137
Shevgaon Bajra 98
Blackgram 9
Cotton 112
Greengram 31
Groundnut 41
Maize 54
Onion 31
Redgram 98
Soyabean 15
Shrirampur Bajra 15
Cotton 50
Maize 54
Redgram 4
Soyabean 40
Name: Village Name, dtype: int64
现在,我想要这个数据,即作物巴吉拉的艾哈迈德纳加尔区块的102个村庄,作物棉花的艾哈迈德纳加尔区块/塔鲁卡的33个村庄……等等
任何帮助都能帮我解决这个问题,谢谢
我知道答案了。我用了下面的代码
相关问题 更多 >
编程相关推荐