使用pandas / numpy如何编写动态代码以供下次分析

时间:2017-07-24 12:31:22

标签: python pandas numpy

数据:

   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]。

有什么帮助吗? 感谢。

1 个答案:

答案 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