Python pandas(DataFrame)学习笔记3

1.按列取、按索引/行取、按特定行列取

import numpy as np
import pandas as pd
 
df=pd.DataFrame(np.arange(12).reshape((3,4)),index=['one','two','three'],columns=list('abcd'))
print(df)

在这里插入图片描述

print("{:-^20}".format("取a列:"))
print(df[['a']])
print(df['a'])
print("{:-^20}".format("取a,b列:"))
print(df[['a','b']])

在这里插入图片描述

# loc只能通过index和columns来取,不能用数字
print("{:-^20}".format("取行,列:"))
print(df.loc['one':'two','a':'c'])

# iloc只能用数字索引,不能用索引名
print(df.iloc[0:2,0:2])  #0、1行,0、1列

#iat取某个单值,只能数字索引
print(df.iat[1,1])  #第2行,2列

#at取某个单值,只能index和columns索引
print(df.at['one','a'])   #one行,a列

在这里插入图片描述
2.按条件取行

df=pd.DataFrame(np.arange(12).reshape((3,4)),index=['one','two','three'],columns=list('abcd'))
print(df)
print('\n')

# 选取等于某些值的行记录 用 ==
print(df.loc[df['a'] == 4])
print('\n')

# 选取不等于某些值的行记录 用 !=
print(df.loc[df['a'] != 4])
print("\n")

# 选取某列是否是某一类型的数值 用 isin
print(df.loc[df['a'].isin([4])])
print("\n")

# isin返回一系列的数值,如果要选择不符合这个条件的数值使用~
print(df.loc[~df['a'].isin([4])])
print("\n")

# 多种条件的选取 用 &
print(df.loc[(df['a'] == 4) & df['b'].isin([4])])

在这里插入图片描述
3.取完之后替换

df = pd.DataFrame({"id": [25,53,15,47,52,54,45,9],
                   "sex": list('mfmfmfmf'),
                   'score': [1.2, 2.3, 3.4, 4.5,6.4,5.7,5.6,4.3],
                   "name":['daisy','tony','peter','tommy','ana','david','ken','jim']})
print(df)

在这里插入图片描述
将男性(m)替换为1,女性(f)替换为0
方法1:

df.loc[df['sex']=='f','sex']=0
df.loc[df['sex']=='m','sex']=1
print(df)

在这里插入图片描述
注:在上面的代码中,逗号后面的‘sex’起到固定列名的作用

方法2:

print(df['sex']=='m')
df.sex[df['sex']=='m']= 1

df.sex[df['sex']=='f']= 0
print(df)

在这里插入图片描述
4.删除特定行

# 要删除列“score”<50的所有行:
df = df.drop(df[df.score < 50].index)
# 或者 
df.drop(df[df.score < 50].index, inplace=True)
 
# 多条件情况
# 可以使用操作符: | 只需其中一个成立, & 同时成立, ~ 表示取反,它们要用括号括起来。
# 例如删除列“score<50 和>20的所有行
df = df.drop(df[(df.score < 50) & (df.score > 20)].index)

参考文章地址:https://www.cnblogs.com/nxf-rabbit75/p/10105271.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值