DataFrame—数据处理2

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

一.数据分组 

#示例数据
df = pd.read_csv("pokemon_data.csv",encoding="gbk")
df.head(10)

数据位置

(1)np.where

通过条件判断来进行分组,满足条件的为一组,不满足条件的为另外一组

例如:攻击力大于或等于79的划分为强攻,攻击力小于79的划分为弱攻

df["Attack_score"] = np.where(df["attack"] >= 79,"A","D")

二.数据分列与合并

分列

#示例数据
df4 = pd.DataFrame({"name":["ray","jack","lucy","bob","candy"],
                    "h&w":["175-70","180-80","168-74","177-72","182-90"],
                    "score":[10,30,20,15,50]},
                  columns=["name","h&w","score"])
df4
nameh&wscore
0ray175-7010
1jack180-8030
2lucy168-7420
3bob177-7215
4candy182-9050

 需求:现在需要将h&w这一列的数据拆分开,分为身高列和体重列,并且拆分后的列需要在源数据里呈现出来

三. 排序

#示例数据
df = pd.read_csv("pokemon_data.csv",encoding="gbk")
df.head(10)

根据值排序

Q1:希望数据表按照“总计”字段的值来升序排列

df.sort_values(by="总计")    #默认就是升序排列

Q2:希望数据表按照“总计”字段的值来降序排列

df.sort_values(by="总计",ascending=False)  #添加ascending=False参数来降序排列

Q3:设置排序的一级关键词是总计,二级关键词为攻击力

#如果都做升序排列
df.sort_values(by=["总计","攻击力"])
#如果都做降序排列
df.sort_values(by=["总计","攻击力"],ascending=False)
#如果按照总计列做升序排列,但是总计相等的行按照攻击力做降序排列
df.sort_values(by=["总计","攻击力"],ascending=[True,False])

Q4:如果希望直接在修改源数据的基础上进行排序,添加参数inplace=True即可

#以升序排列为例
df.sort_values(by="总计",inplace=True)
df

升序排列

df.sort_index(inplace=True)
df

降序排列

df.sort_index(ascending=False,inplace=True)
df

四,排名

df_rank["rank"] = df_rank["总计"].rank(ascending=False,method="dense")
df_rank

五,转置

#示例数据
df5 = pd.DataFrame({"cost":[800,1000,1200],"sale":[1000,2000,2500]},index=["1月","2月","3月"])
df5
costsale
1月8001000
2月10002000
3月12002500
#行索引和列索引进行转置
df5 = df5.T
df5
1月2月3月
cost80010001200
sale100020002500
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值