使用pandas/numpy如何为下一步分析编写动态代码

2024-06-30 14:56:02 发布

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

数据:

   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],那么它将按降序错误选择

所以,我需要一些逻辑代码,将适用于“作物”列容易

如果作物=大豆,那么它将自动显示最上面的村庄(降序) 按使用面积划分的大豆作物

如果作物=棉花,则会自动显示棉花作物的顶部村庄

棉花作物无需键入df2=df[12:22]

有什么帮助吗? 谢谢


Tags: 数据代码作物cropimportdfforarea
1条回答
网友
1楼 · 发布于 2024-06-30 14:56:02

这称为布尔索引,使用以下语法完成:

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

相关问题 更多 >