pandas 学习笔记

本文介绍了Pandas的基本操作,包括导入库、读取CSV,使用pd.head()、df.info()、df.index、df.columns和df.values。详细讲解了索引定位、.loc和.iloc的区别,以及如何修改数据。此外,还探讨了groupby的使用、数值运算如求和、平均值、最大值、最小值,以及Series和DataFrame的增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、基本操作

1导入pandas库,读入csv文件, .read_csv()函数

2 pd.head() , df.info(),df.index,df.columns,df.values

3 .set_index()

 4. Series对象运算以及一些统计指标

①加 10 相当于对每个元素都加上10

②age.mean(),age.max(),age.min()

二、索引

 1 定位一个列,取前5条数据,Age列中前5个数据

2 定位两个列,取前5条数据,Age,和Fare列中前5个数据

3 .loc --- 通过标签获取定位 .iloc ---通过位置获取定位

通过位置获取定位  .iloc

通过标签获取数据 .loc[]

4  使用label作为索引时,也可以使用切片

5 修改数据,针对某一个数据直接赋值

6 bool类型的索引

三 、groupby的使用

 1 聚类求和

2 .groupby()实现的功能就类似于下面的for循环

3 可以结合numpy一起使用,.aggregate()函数,如下:

四、数值运算

 1、pandas中.sum()默认是按列求和,如果需要按行求和,可以增加参数axis=1

 2 df.mean(),.max(),min(),.median()

3 二元统计

①.cov() 协方差

②.corr()  相关系数

4 .value_counts()统一各特征值的个数

5 计数统计.count()函数

五、增删改查

1、Series

①查询操作

②修改操作

③增加操作

④删除操作

 2 DataFrame对象操作

①查询操作

②修改操作

③增加操作

使用.concat()连接2个DataFrame对象

④删除操作


一、基本操作

1导入pandas库,读入csv文件, .read_csv()函数

#导入pandas库
import pandas as pd

#读取csv文件
df = pd.read_csv('泰坦尼克号数据.csv')

2 pd.head() , df.info(),df.index,df.columns,df.values

pd.head()---获取默认显示df前5条信息,可以传参数,显示想要的信息数量

df.info()---显示当前df信息

df.index---获取df的索引值

df.columns---获取列名字值

df.values---获取df中的值,以一个二维矩阵显示

 ① pd.head()

In [25]:

df[['PassengerId','Survived','Pclass','Name']].head()

Out[25]:

PassengerId Survived Pclass Name
0 1 0 3 Braund, Mr. Owen Harris
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th...
2 3 1 3 Heikkinen, Miss. Laina
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel)
4 5 0 3 Allen, Mr. William Henry

②df.info()

#显示各列字段名称;非空值的数量,每列的数据类型,以及内存占用情况

In [24]:
df.info()
#显示各列字段名称;非空值的数量,每列的数据类型,以及内存占用情况
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB

③获取索引值,列名称,df的数据值 

#获取df的索引值
In [11]:
df.index

Out[11]:
RangeIndex(start=0, stop=891, step=1)

#获取df的列名称
In [12]:
df.columns

Out[12]:
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
      dtype='object')


#获取df中的值,以一个二维矩阵显示
In [14]:
df.values

Out[14]:
array([[1, 0, 3, ..., 7.25, nan, 'S'],
       [2, 1, 1, ..., 71.2833, 'C85', 'C'],
       [3, 1, 3, ..., 7.925, nan, 'S'],
       ...,
       [889, 0, 3, ..., 23.45, nan, 'S'],
       [890, 1, 1, ..., 30.0, 'C148', 'C'],
       [891, 0, 3, ..., 7.75, nan, 'Q']], dtype=object)
#获取矩阵中的第一列值,pandas中object表示 字符串类型
In [15]:
df.values[0]
Out[15]:
array([1, 0, 3, 'Braund, Mr. Owen Harris', 'male', 22.0, 1, 0,
       'A/5 21171', 7.25, nan, 'S'], dtype=object)

3 .set_index()

索引可以自己指定,.set_index(),inplace参数为True时,表示该操作改变原来的df

In [35]:
df.set_index('Name',inplace = True)

In [38]:
age = df['Age'][:5]
#此时age为一个Series对象,索引值为Name,且显示前5条数据
Out[38]:
Name
Braund, Mr. Owen Harris                                22.0
Cumings, Mrs. John Bradley (Florence Briggs Thayer)    38.0
Heikkinen, Miss. Laina                                 26.0
Futrelle, Mrs. Jacques Heath (Lily May Peel)           35.0
Allen, Mr. William Henry                               35.0
Name: Age, dtype: float64

#age为Series对象,使用Name作为索引值,使用Name获取对应年龄
In [39]:
age['Braund, Mr. Owen Harris']
Out[39]:
22.0

 4. Series对象运算以及一些统计指标

①加 10 相当于对每个元素都加上10

In [40]:
age = age + 10
age
Out[40]:
Name
Braund, Mr. Owen Harris                                32.0
Cumings, Mrs. John Bradley (Florence Briggs Thayer)    48.0
Heikkinen, Miss. Laina                                 36.0
Futrelle, Mrs. Jacques Heath (Lily May Peel)           45.0
Allen, Mr. William Henry                               45.0
Name: Age, dtype: float64

②age.mean(),age.max(),age.min()

In [41]:
age.mean()

Out[41]:
41.2

In [42]:
age.max()

Out[42]:
48.0

In [43]:
age.min()

Out[43]:
32.0

③.describe()统计指标

In [44]:

df.describe()

Out[44]:

PassengerId Survived Pclass Age SibSp Parch Fare
count 891.000000 891.000000 891.000000 714.000000 891.000000 891.000000 891.000000
mean 446.000000 0.383838 2.308642 29.699118 0.523008 0.381594 32.204208
std 257.353842 0.486592 0.836071 14.526497 1.102743 0.806057 49.693429
min 1.000000 0.000000 1.000000 0.420000 0.000000 0.000000 0.000000
25% 223.500000 0.000000 2.000000 20.125000 0.000000 0.000000 7.910400
50% 446.000000 0.000000 3.000000 28.000000 0.000000 0.000000 14.454200
75% 668.500000 1.000000 3.000000 38.000000 1.000000 0.000000 31.000000
max 891.000000 1.000000 3.000000 80.000000 8.000000 6.000000 512.329200

二、索引

In [46]:
import pandas as pd
df = pd.read_csv('泰坦尼克号数据.csv')

df.head()

Out[25]:

PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S

 1 定位一个列,取前5条数据,Age列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值