我是蟒蛇和熊猫的新手,我很难找到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这就是数据的样子(这只是数据的一部分):
County WUCode RegNo Year SourceCode SourceID Annual CountyName
1 IR 311 2014 WELL 1 946 Adams
1 IN 311 2014 INTAKE 1 268056 Adams
1 IN 312 2014 WELL 1 48 Adams
1 IN 312 2014 WELL 2 96 Adams
1 IR 312 2014 INTAKE 1 337968 Adams
3 IR 315 2014 WELL 5 81900 Putnam
3 PS 315 2014 WELL 6 104400 Putnam我有几个问题:
我不知道如何只拿出WUCode栏中关于熊猫的"IR“,也不知道如何打印出2014年灌溉用水最高的10个县的桌子。
我已经能够使用.loc函数提取我需要的信息,如下所示:
data.loc['2014', ['CountyName', 'Annual', 'WUCode']]从这里我有点迷路了。我会很感激你的帮助!
发布于 2018-03-21 15:45:13
import numpy as np
import pandas as pd
import string
df = pd.DataFrame(data={"Annual": np.random.randint(20, 1000000, 1000),
"Year": np.random.randint(2012, 2016, 1000),
"CountyName": np.random.choice(list(string.ascii_letters), 1000)},
columns=["Annual", "Year", "CountyName"])假设df看起来如下:
Annual Year CountyName
0 518966 2012 s
1 44511 2013 E
2 332010 2012 e
3 382168 2013 c
4 202816 2013 y2014年..。
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)拿前十名..。
df[df['Year'] == 2014].groupby("CountyName")["Annual"].sum().sort_values(ascending=False).head(10)此示例输出(由于我的数据是随机的)实际结果可能会有所不同:
CountyName
Q 5191814
y 4335358
r 4315072
f 3985170
A 3685844
a 3583360
S 3301817
I 3231621
t 3228578
u 3164965发布于 2018-03-21 15:31:26
这可能对你有用:
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解释
groupby Year和CountyName进行过滤。reset_index,所以您的结果是一个数据,而不是一个系列。sort_values并通过pd.DataFrame.head提取前10位。https://stackoverflow.com/questions/49410188
复制相似问题