DW_Pandas_Task2

一、Pandas基础
主要内容是文件的读写、学习Series和DataFrame两种数据结构、常用函数(汇总、特征统计、唯一值、替换、排序、apply)以及窗口对象
其中窗口对象的内容借助图表的形式有助于理解rolling、shift、diff、pct_change

二、练习题
在这里插入图片描述
1、汇总函数的使用
df_demo = df[[‘HP’, ‘Attack’,‘Defense’,‘Sp. Atk’,‘Sp. Def’,‘Speed’]]
df_demo.apply(lambda x:x.sum(), axis=1)==df[‘Total’]
在这里插入图片描述
2、a
df_2 =df.drop_duplicates(’#’,keep=‘first’)
df_2[‘Type 1’].nunique()
df_2[‘Type 1’].value_counts().head(3)
在这里插入图片描述
2、b
df_2.drop_duplicates([‘Type 1’,‘Type 2’],keep=‘first’) 143个组合
在这里插入图片描述

df_2.drop_duplicates([‘Type 1’,‘Type 2’],keep=False) 40个组合
keep=False 所有重复组合的行进行了剔除
在这里插入图片描述
Q:表示保留只出现过一次的组合吗?
2.c
计算:Type1与Type2的所有组合减掉上一小题的所有组合
Q: 不能拼成字符串
在这里插入图片描述
同样的:L_part = [i+’ ‘+j for i, j in zip(df[‘Type 1’], df[‘Type 2’])]也会有问题
在这里插入图片描述
True: L_part = [i+’ '+j for i, j in zip(df[‘Type 1’], df[‘Type 2’].replace(np.nan, ‘’))]可以实现,由此可见replace(np.nan, ‘’)是将格式进行统一的关键,np.nan是一个float类型的数据.
最后用:res = set(L_full).difference(set(L_part)) 进行删减

3、a

s1=df[‘Attack’]
s1.mask(s1>120,‘high’).mask(s1<50,‘low’) 可以运行
s1.mask(s1>120,‘high’).mask(s1<50,‘low’).mask(s1<=120 & s1>=50,‘mid’) 报错
参考答案:df[‘Attack’].mask(df[‘Attack’]>120, ‘high’).mask(df[‘Attack’]<50, ‘low’).mask((50<=df[‘Attack’])&(df[‘Attack’]<=120), ‘mid’)

3、b
1)replace方法
在这里插入图片描述
2)apply

s2.apply(lambda x:str.upper(x))

3、c
numpy模块下的median作用为:计算沿指定轴的均值,返回数组元素的均值.

df[‘statistics’]=df[[‘HP’,‘Attack’, ‘Defense’, ‘Sp. Atk’, ‘Sp. Def’, ‘Speed’]].apply(lambda x:np.max((x-x.median()).abs()),axis=1)
df[‘statistics’].sort_values(ascending=False)
df.sort_values(‘statistics’,ascending=False)

第二个大题还需要时间去琢磨。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值