Python 如何利用大熊猫把一年中用水量最大的县拉出来?
我对蟒蛇和熊猫还不熟悉,我正在努力找出如何在2014年将灌溉用水最多的10个县撤出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
%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和
Year和CountyName筛选groupby
- 使用
使结果是一个数据帧而不是一个序列reset_index
- 使用
并通过sort_值
提取前10名pd.DataFrame.head
- 这可能适合您:
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和
Year和CountyName筛选groupby
- 使用
使结果是一个数据帧而不是一个序列reset_index
- 使用
并通过sort_值
提取前10名pd.DataFrame.head
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'都有多个结果。