数据:
District Crop Village Area
0 Nagar Soyabean Aagar 10
1 Nagar Soyabean Dhagewadi 32
2 Nagar Soyabean Sherewadi 34
3 Nagar Soyabean Shindwad 42
4 Nagar Soyabean Ambikanagar 45
5 Nagar Soyabean Khanapur 65
6 Nagar Soyabean Dhokari 84
7 Nagar Soyabean Pangri 105
8 Nagar Soyabean Pi.Khand 120
9 Nagar Soyabean Gardhani 122
10 Nagar Soyabean Takali 127
11 Nagar Cotton Aagar 125
12 Nagar Cotton Dhagewadi 110
13 Nagar Cotton Sherewadi 153
14 Nagar Cotton Shindwad 147
15 Nagar Cotton Ambikanagar 180
16 Nagar Cotton Khanapur 185
17 Nagar Cotton Dhokari 100
18 Nagar Cotton Pangri 135
19 Nagar Cotton Pi.Khand 120
20 Nagar Cotton Gardhani 174
21 Nagar Cotton Takali 85
Python代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.read_csv("/home/desktop/Data.csv")
df
df1=df[1:11] #Using df1 for getting soyabean Crop area
df2=df[12:22] #Using df2 for getting Cotton Crop area
df1 = df1.sort('Area', ascending=False) # getting villages in descending order for select top 5 villages for soyabean crop
df2 = df2.sort('Area', ascending=False) # getting villages in descending order for select top 5 villages for cotton crop
数据是示例文件,但我有25种不同的裁剪数据。
所以,在我的代码中我使用df1,df2 .... df25进行25次作物。
我需要检查每种作物的总行数。
并且有可能输入错误的数字。
像
df2 = df [12:22],
如果有时错字df2 = df [13:22]那么它将按降序错误选择。
所以,我需要一些逻辑代码,这些代码很容易应用于“Crop”列。
如果crop = soyabean,那么它将自动显示顶级村庄(降序) 大豆作物使用面积。
如果作物=棉花,那么它将自动显示棉花作物的顶级村庄。
无需为棉花作物输入df2 = df [12:22]。
有什么帮助吗? 感谢。
答案 0 :(得分:0)
这称为布尔索引,使用以下语法完成:
df_0 = df[df['Crop'] == 'Soyabean']
df_1 = df[df['Crop'] == 'Cotton']
df_0
District Crop Village Area
0 Nagar Soyabean Aagar 10
1 Nagar Soyabean Dhagewadi 32
2 Nagar Soyabean Sherewadi 34
3 Nagar Soyabean Shindwad 42
4 Nagar Soyabean Ambikanagar 45
5 Nagar Soyabean Khanapur 65
6 Nagar Soyabean Dhokari 84
7 Nagar Soyabean Pangri 105
8 Nagar Soyabean Pi.Khand 120
9 Nagar Soyabean Gardhani 122
10 Nagar Soyabean Takali 127
这不需要循环。您可以在此处详细了解:https://pandas.pydata.org/pandas-docs/stable/indexing.html