Ex1:美国非法药物数据集
现有一份关于美国非法药物的数据集,其中 SubstanceName, DrugReports
分别指药物名称和报告数量:
In [64]: df = pd.read_csv('data/drugs.csv').sort_values([
....: 'State','COUNTY','SubstanceName'],ignore_index=True)
....:
In [65]: df.head(3)
Out[65]:
YYYY State COUNTY SubstanceName DrugReports
0 2011 KY ADAIR Buprenorphine 3
1 2012 KY ADAIR Buprenorphine 5
2 2013 KY ADAIR Buprenorphine 4
- 将数据转为如下的形式:
- 将第1问中的结果恢复为原表。
- 按
State
分别统计每年的报告数量总和,其中State, YYYY
分别为列索引和行索引,要求分别使用pivot_table
函数与groupby+unstack
两种不同的策略实现,并体会它们之间的联系。
Ex2:特殊的wide_to_long方法
从功能上看, melt
方法应当属于 wide_to_long
的一种特殊情况,即 stubnames
只有一类。请使用 wide_to_long
生成 melt
一节中的 df_melted
。(提示:对列名增加适当的前缀)
In [66]: df = pd.DataFrame({'Class':[1,2],
....: 'Name':['San Zhang', 'Si Li'],
....: 'Chinese':[80, 90],
....: 'Math':[80, 75]})
....:
In [67]: df
Out[67]:
Class Name Chinese Math
0 1 San Zhang 80 80
1 2 Si Li 90 75