Python 如何利用大熊猫把一年中用水量最大的县拉出来?

Python 如何利用大熊猫把一年中用水量最大的县拉出来?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我对蟒蛇和熊猫还不熟悉,我正在努力找出如何在2014年将灌溉用水最多的10个县撤出 %matplotlib inline import csv import pandas as pd import numpy as np import matplotlib.pyplot as plt data = pd.read_csv('info.csv') #reads csv data['Year'] = pd.to_datetime(['Year'], format='%Y') #converts

我对蟒蛇和熊猫还不熟悉,我正在努力找出如何在2014年将灌溉用水最多的10个县撤出

%matplotlib inline
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv('info.csv') #reads csv

data['Year'] = pd.to_datetime(['Year'], format='%Y') #converts string to 
                                                     datetime
data.index = data['Year'] #makes year the index
del data['Year'] #delete the duplicate year column
这是数据的外观(这只是部分数据):

我有几个问题:

我不知道如何在
WUCode
栏中仅列出熊猫的“IR”,也不知道如何打印出2014年灌溉用水最高的10个县的表格

%matplotlib inline
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv('info.csv') #reads csv

data['Year'] = pd.to_datetime(['Year'], format='%Y') #converts string to 
                                                     datetime
data.index = data['Year'] #makes year the index
del data['Year'] #delete the duplicate year column
我已经能够使用
.loc
功能提取我需要的信息,如下所示:

data.loc['2014', ['CountyName', 'Annual', 'WUCode']]
从这里我有点迷路了。谢谢你的帮助

这可能适合您:

res = df[df['WUCode'] == 'IR'].groupby(['Year', 'CountyName'])['Annual'].sum()\
                              .reset_index()\
                              .sort_values('Annual', ascending=False)\
                              .head(10)

#    Year CountyName  Annual
# 0  2014      Adams  338914
# 1  2014     Putnam   81900
解释

  • 根据需要按WUCode和
    groupby
    Year和CountyName筛选
  • 使用
    reset_index
    使结果是一个数据帧而不是一个序列
  • 使用
    sort_值
    并通过
    pd.DataFrame.head
    提取前10名
    • 这可能适合您:

      res = df[df['WUCode'] == 'IR'].groupby(['Year', 'CountyName'])['Annual'].sum()\
                                    .reset_index()\
                                    .sort_values('Annual', ascending=False)\
                                    .head(10)
      
      #    Year CountyName  Annual
      # 0  2014      Adams  338914
      # 1  2014     Putnam   81900
      
      解释

      • 根据需要按WUCode和
        groupby
        Year和CountyName筛选
      • 使用
        reset_index
        使结果是一个数据帧而不是一个序列
      • 使用
        sort_值
        并通过
        pd.DataFrame.head
        提取前10名
      假设df看起来像:

         Annual  Year CountyName
      0  518966  2012          s
      1   44511  2013          E
      2  332010  2012          e
      3  382168  2013          c
      4  202816  2013          y
      
      2014年

      df[df['Year'] == 2014]
      
      按CountyName分组

      df[df['Year'] == 2014].groupby("CountyName")
      
      看看每年的

      df[df['Year'] == 2014].groupby("CountyName")["Annual"]
      
      得到总数

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum()
      
      将结果按降序排序

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum().sort_values(ascending=False)
      
      以前10名为例

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum().sort_values(ascending=False).head(10)
      
      此示例打印出来(由于我的数据是随机的,您的实际结果可能会有所不同):

      假设df看起来像:

         Annual  Year CountyName
      0  518966  2012          s
      1   44511  2013          E
      2  332010  2012          e
      3  382168  2013          c
      4  202816  2013          y
      
      2014年

      df[df['Year'] == 2014]
      
      按CountyName分组

      df[df['Year'] == 2014].groupby("CountyName")
      
      看看每年的

      df[df['Year'] == 2014].groupby("CountyName")["Annual"]
      
      得到总数

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum()
      
      将结果按降序排序

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum().sort_values(ascending=False)
      
      以前10名为例

      df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum().sort_values(ascending=False).head(10)
      
      此示例打印出来(由于我的数据是随机的,您的实际结果可能会有所不同):


      那么
      df[df[“Year”]==2014]呢。对值进行排序(“年度”,轴=1,升序=False)。头(10)
      ?(我只是不确定这一年是否等于2014年,因为这是一个日期时间)我认为首先需要一个
      groupby
      ?(我只是不确定这一年是否等于2014年,因为这是一个日期时间)我认为首先需要一个
      groupby
      ,因为每个县2014年的WUCode='IR'都有多个结果。