Python数据分析学习笔记-pandas库学习2

本文详细介绍了Pandas库中DataFrame的创建、列名和索引的获取、数据选取、切片、添加与删除列、按行索引取数以及插入和删除行等操作。通过实例展示了如何高效地操作数据,对于数据处理和分析非常实用。
摘要由CSDN通过智能技术生成

DataFrame

1 生成DataFrame

import pandas as pd
import numpy as np
data = np.arange(100,109).reshape(3,-1)
df1 = pd.DataFrame(data)
print(df1)

在这里插入图片描述
第一行012理解为列名,第一列012理解为索引

自定义data

data1 = {
    'name':['Brett','Eddy','Kris'],
    'age':[19,18,19],
    'habit':['violin','violin','voice']
}
df2=pd.DataFrame(data1)
print(df2)

在这里插入图片描述
初始化
自定义列名,自定义索引

df3=pd.DataFrame(data1,columns=['userName','age','habit','height'],index=range(1,4))
print(df3)

userName与data1中的name没有对应关系
索引从1开始,到3(不包括)结束,步进为1

在这里插入图片描述

2 获取列名、获取索引

colname = df2.columns
indexname = df2.index
print(colname,'\n',indexname)

Index([‘name’, ‘age’, ‘habit’], dtype=‘object’)
RangeIndex(start=0, stop=3, step=1)

3 pandas中数据选取

按列取数
ser=df3.age  #取age列的数据
lis=df3[['age']]  #以dataframe形式取age列数据
print(ser,'\n',lis)

1 19
2 18
3 19
Name: age, dtype: int64
在这里插入图片描述

lis=df3[['age','habit']]
print(lis)

这里是引用

将某列数据取出后单独处理,须使用copy方法,否则会影响原表

names=df2.name.copy()   #copy单独复制数据,不会影响df2
names[0]='jack'
print(names,'\n',df2)

0 jack
1 Eddy
2 Kris
Name: name, dtype: object
在这里插入图片描述

names=df3.userName  #会直接影响df3
names[1]='jack'
print(df3)  

这里是引用

切片

lis2=df3[df3.columns[1:3]]  #取出2、3列的所有值
print(lis2)

这里是引用

添加列
df2['height']=[1.67,1.66,1.70]  #添加height列
print(df2)

这里是引用

删除列

不影响原表,从原表取出数据drop

lis3=df3.drop(['userName','height'],axis=1)
print(lis3,'\n',df3)

这里是引用

或按列取数

lis3=df3.drop(df3.columns[1::2],axis=1) 
print(lis3)

这里是引用

按行索引取数
a=df3.loc[1]     #取出行索引为1的数据,series
alist=df3.loc[[13]]   #以dataframe格式取出行索引为1,3的数据
print(a,'\n',alist)

userName jack
age 19
habit violin
height 1.67
Name: 1, dtype: object
在这里插入图片描述

在不知道行索引前提下,想取出最后两个数据的username和age

lis4=df3.loc[df3.index[-2:],['userName','age']]  #df3.index[-2:]查出最后两位索引值
print(lis4)

这里是引用

插入行数据

在最后一行出入自定义数据

df2.loc[df2.shape[0]]={'age':13,'name':'Jordan','habit':'compose'}
print(df2)

这里是引用

删除行
lis5=df2.drop(2)
print(lis5)
lis5.index=range(lis5.shape[0])  #重置索引编号
print(lis5)

这里是引用
在这里插入图片描述

删除行后原索引也被删除
iloc对象可通过内存中物理顺序取值

lis5=df2.drop(2)
print(lis5)
b=lis5.iloc[2]   #iloc内存中存储的物理顺序
print(b)

这里是引用
name Jordan
age 13
habit compose
Name: 3, dtype: object

示例:

#变更索引
lis5.index=list('ABC')
print(lis5)

这里是引用

变更后索引为ABC,但物理索引没有改变,用iloc函数取值

lis6=lis5.iloc[1:2] #取出lis5中第2-3行数据
print(lis6)

这里是引用

取出某行某列的数据
a=lis5.iat[1,2]
print(a)

violin

变更某行某列的数据
lis5.iat[1,2]='piano'
print(lis5)

这里是引用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值