pandas(2)

第三章 分组(续)

2
……

第四章 变形

1

import pandas as pd
import numpy as np
df=pd.read_csv('C:/Users/优岚/Desktop/data/Drugs.csv').sort_index()
df

#(a) 现在请你将数据表转化成如下形态,每行需要显示每种药物在每个地区的10年至17年的变化情况,且前三列需要排序
df_p=pd.pivot_table(df,index=['State','COUNTY','SubstanceName'],columns='YYYY',values='DrugReports',fill_value='-')\
.reset_index().sort_values(by=['State','COUNTY','SubstanceName'])
df_p

#(b) 现在请将(a)中的结果恢复到原数据表,并通过equal函数检验初始表与新的结果是否一致(返回True)
df_new= df_p.reset_index().melt(id_vars=['State','COUNTY','SubstanceName'],value_vars=df_p.columns[-8:],value_name='DrugReports').dropna().sort_index().set_index(['State','COUNTY','SubstanceName']).reset_index()
order = ['YYYY', 'State', 'COUNTY', 'SubstanceName', 'DrugReports']  #整理列的顺序
df_new= df[order]
df_new.equals(df)

在这里插入图片描述
改了好多遍,终于true了(!)
在这里插入图片描述

import pandas as pd
import numpy as np
df=pd.read_csv('C:/Users/优岚/Desktop/data/Earthquake.csv').sort_values('日期').sort_index().reset_index()
df.head()

#(a) 现在请你将数据表转化成如下形态,每行需要显示每种药物在每个地区的10年至17年的变化情况,且前三列需要排序
df_p=pd.pivot_table(df,index=['State','COUNTY','SubstanceName'],columns='YYYY',values='DrugReports',fill_value='-')\
.reset_index().sort_values(by=['State','COUNTY','SubstanceName']).rename_axis(columns={'YYYY':''})
df_p.head()

#(b) 现在请将(a)中的结果恢复到原数据表,并通过equal函数检验初始表与新的结果是否一致(返回True)
df_new= df_p.reset_index().melt(id_vars=['State','COUNTY','SubstanceName'],value_vars=df_p.columns[-8:],value_name='DrugReports').dropna().sort_index().set_index(['State','COUNTY','SubstanceName']).reset_index()
order = ['YYYY', 'State', 'COUNTY', 'SubstanceName', 'DrugReports']
df_new= df[order]
df_new.equals(df)

在这里插入图片描述

第五章 合并

在这里插入图片描述

import pandas as pd
import numpy as np
df1=pd.read_csv('C:/Users/优岚/Desktop/data/Employee1.csv')
df2=pd.read_csv('C:/Users/优岚/Desktop/data/Employee2.csv')

#(a) 每个公司有多少员工满足如下条件:既出现第一张表,又出现在第二张表。
df1_namelist=df1['Name'].values.tolist()
df2_namelist=df2['Name'].values.tolist()
re=[x for x in df1_namelist if x in df2_namelist]
re

#(b) 将所有不符合(a)中条件的行筛选出来,合并为一张新表,列名与原表一致。
df = pd.concat([df1,df2])
df_pick = df[~df['Name'].isin(re)].reset_index()
df_pick.head()

在这里插入图片描述
(c)看不懂在问什么……百度了一下(噢 我不会写循环
在这里插入图片描述
……

还有两题没写,有缘再写吧

[ 该会的会了,不会的就不会了→百度真是个好东西 ]

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值