“第二课堂“,AI实践第二次笔记

pandas入门

csv文件

(与excel类似)

载入数据

相对路径:当前工作目录,直接名称
绝对路径:相应文件在电脑中的位置(因为转义符报错,加r,字符r的功能:取消转义)
定义df=pd.read(读取)_csv(类型)+路径

分块获取数据

用chunk分块函数:读取数据,然后补充chunksize,for循环读取输出(chunker:数据块类型变量)

更换表头(中英文互换)

用names列表列出新表头(注意是从后往前填充的),改索引:index_col=,把表头改成默认第一行,即刚输入的列表。(直接当成列表赋值的思路)
用rename函数:df.rename(columns={‘PASSENGERS ID’:‘乘客ID’…},inplace=True)

初步观察

基本信息

df.info()

查看前几行后几行

df.head(行数)  df.tail(行数)

查看数据是否为空

df.isnull().head(行数)

数据类型

series:一维索引,一一对应(两组相关数据)
DataFrame:表格型包含一组有序的列,有行索引也有列索引,每列可以是不同的值类型,可以看作字典

查看每列的名称

df.columns(英译)

查看固定列的值

df[‘该列名称’](.前几行后几行范围)or df.该列名称

删除特定列

del test1['a']
test1.drop('a',axis=1)

隐藏特定列

df.drop(['PassengerId','Name','Age','Ticket'],axis=1)

筛选(iloc与loc)

大小关系筛选

midage = df[(df['Age']>10)&(df['Age']<50)]

用iloc和loc显示指定行数指定元素

用loc显示特定行:
单行:midage.loc[[100],[‘Pclass’,‘Sex’]]
多行:midage.loc[[100,105,108],[‘Pclass’,‘Name’,‘Sex’]]
用iloc显示特定行:
多行:midage.iloc[[100,105,108],[2,3,4]]
iloc与loc的不同:
loc通过行、列的名称或标签进行索引
iloc通过行、列的索引位置(数字)来寻找数据

深入探索数据

按行、列索引升序

frame.sort_index()列加(axis=1)

按行列索引降序

frame.sort_index(axis=1,ascending=False)(加ascending=False

任选两列降序or升序

frame.sort_values(by=['a','c'],ascending=False)(by=['对应列']

将两组数据相加

直接相加:空的显示

查看基本统计信息

df.describe()

count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值

作业讲解部分

筛选一列为空值的数据并分别存储

single = df[df['属性2'].isnull()]
single.drop(columns=['属性2'],inplace=True)
single.to_csv('./single.csv',index=False)
dual = df[df['属性2'].notnull()]
dual.to_csv('./dual.csv',index=False)

将重复的列只保留第一次出现的行,并求出第一属性的种群数量

df.drop_duplicates('全国图鉴编号',keep='first')
print(df['属性1'].nunique())

求第一属性和第二属性的组合数量

data=df.groupby(['属性1','属性2']).size()
data

data=dual.drop_duplicates(['属性1','属性2'])
data[['属性1','属性2']].value_counts()

将体力值超过一百的替换为high,低于50的替换为low,剩余的替换为mid

data = df.copy()
for i in range(len(data)):
    s = data.loc[i,'体力']
    if int(s)>100:
        data.loc[i,'体力']=high
    elif int(s)<50:
        data.loc[i,'体力']=low
    else:
        data.loc[i,'体力']=mid

或使用lambda函数

df['体力']=df['体力'].apply(lambda x:'high' if int(x)>100 else 'low' if int(x)<50 else)
lambda函数

lambda [arg1 [,arg2,…argn]]:expression
将x作为lambda的参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值