pandas入门

一.pandas数据结构介绍

        1.Series对象

        2.DataFrame对象

二.Series常见操作

        1.常见属性

        2.常用方法

        3.布尔索引

        4.运算

三.DataFrame常见操作

        1.常见属性

        2.常用方法

        3.布尔索引

        4.运算

        5.更改操作

一.pandas数据结构介绍

1.解释:

(1)DataFrame

        可以把DataFrame看作由Series对象组成的字典,其中key是列名,值是Series

(2)Series

        Series和Python的列表非常相似,但是它的每个元素的数据类型必须相同

(3)pandas中只有列或者二维表,没有行的数据结构(即使是行数据也会通过列的方式进行展示)

二.创建Series对象

1.概述:

(1)Series也是Pandas中最基本的数据结构对象,下文简称s对象;是DataFrame的列对象或者行对象,series本身也具有行索引

(2)Series是一种类似于一维数组的对象,由下面两个部分组成:

        a.values:一组数据(numpy.ndarray类型)

        b.index:相关的数据行索引标签;如果没有为数据指定索引,于是会自动创建一个0-N-1(N为数据的长度)的整数型索引

2.创建的方法

(1)自动生成索引

import numpy as np
import pandas as pd

# 创建numpy.ndarray对象
n1 = np.array([1, 2, 3])
print(n1)
print(type(n1))

# 创建Series对象
s1 = pd.Series(data=n1)
print(s1)
print(type(s1))

# 直接创建
s2 = pd.Series(['banana', 42])
print(s2)
print(type(s2))

(2) 指定索引

s2 = pd.Series(['乔峰','男'], index = ['Name', 'Gender'])
print(s)

(3)通过元组和字典创建Series对象

import pandas as pd

# 使用元组
tuple1 = (1, 2, 3)
s1 = pd.Series(tuple1)
print(s1)

# 使用字典 字典中的key值是Series对象的索引值,value值是Series对象的数据值
dict1 = {'A': 1, 'B': 2, 'C': 3}
s2 = pd.Series(dict1)
print(s2)

三.创建DataFrame对象

1.概述:

(1)DataFrame是一个表格型的==结构化==数据结构,它含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔值等)。

(2)DataFrame是Pandas中的最基本的数据结构对象,简称df;可以认为df就是一个二维数据表,这个表有行有列有索引

(3)DataFrame是Pandas中最基本的数据结构,Series的许多属性和方法在DataFrame中也一样适用.

2.创建方法

(1)字典方式创建

import pandas as pd

dict_data = {
    'id': [1, 2, 3],
    'name': ['张三', '李四', '王五'],
    'age': [18, 20, 22]
}
# 使用默认自增索引
# 字典中的key值是df对象的列名,value值是对应列的数据值
df1 = pd.DataFrame(data=dict_data)
print(df1)
print(type(df1))

# 通过index参数指定索引, columns参数指定列的位置
df2 = pd.DataFrame(data=dict_data, index=['A', 'B', 'C'], columns=['id', 'age', 'name'])
print(df2)

(2)列表+元组方式创建

list_data = [(1, '张三', 18),
             (2, '李四', 20),
             (3, '王五', 22)]
df3 = pd.DataFrame(data=list_data,
                   index=['A', 'B', 'C'],  # 手动指定索引
                   columns=['id', 'name', 'age'])  # 手动指定列名
print(df3)

# 输出结果如下
   id  name  age
A   1  张三   18
B   2  李四   20
C   3  王五   22

四.Series常见属性

1.常见属性

2.Series的常用方法

3.Series的布尔索引 

4.Series的运算

Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算;

两个Series之间计算时,索引值相同的元素之间会进行计算;索引值不同的元素的计算结果会用NaN值(缺失值)填充。

五.DataFrame常用属性和方法

import pandas as pd

# 加载数据集, 得到df对象
df = pd.read_csv('data/scientists.csv')

print('=============== 常用属性 ===============')
# 查看维度, 返回元组类型 -> (行数, 列数), 元素个数代表维度数
print(df.shape)
# 查看数据值个数, 行数*列数, NaN值也算
print(df.size)
# 查看数据值, 返回numpy的ndarray类型
print(df.values)
# 查看维度数
print(df.ndim)
# 返回列名和列数据类型
print(df.dtypes)
# 查看索引值, 返回索引值对象
print(df.index)
# 查看列名, 返回列名对象
print(df.columns)
print('=============== 常用方法 ===============')
# 查看前5行数据
print(df.head())
# 查看后5行数据
print(df.tail())
# 查看df的基本信息
df.info()
# 查看df对象中所有数值列的描述统计信息
print(df.describe())
# 查看df对象中所有非数值列的描述统计信息
# exclude:不包含指定类型列
print(df.describe(exclude=['int', 'float']))
# 查看df对象中所有列的描述统计信息
# include:包含指定类型列, all代表所有类型
print(df.describe(include='all'))
# 查看df的行数
print(len(df))
# 查看df各列的最小值
print(df.min())
# 查看df各列的非空值个数
print(df.count())
# 查看df数值列的平均值
print(df.mean())

六.DataFrame-索引操作

# 小案例, 同上, 主演脸书点赞量 > 主演脸书平均点赞量的
movie[movie['actor_1_facebook_likes'] > movie['actor_1_facebook_likes'].mean()]

# df也支持索引操作
movie.head()[[True, True, False, True, False]]

七.DataFrame-修改行列索引

# 读取文件, 不指定索引, Pandas会自动加上从0开始的索引
movie = pd.read_csv('data/movie.csv')  
movie.head()

# 设置 电影名 为索引列.   
movie1 = movie.set_index('movie_title')
movie1.head()

# 如果加上 inplace=True, 则会修改原始的df对象
movie.set_index('movie_title', inplace=True)  
movie.head()    # 原始的数据并没有发生改变.

八.添加-删除-插入列

```python
movie = pd.read_csv('data/movie.csv')

# 通过 df[列名] = 值  的方式, 可以给df对象新增一列, 默认: 在df对象的最后添加一列.
movie['has_seen'] = 0   # 新增一列, 表示: 是否看过(该电影)   

# 新增一列, 表示: 导演和演员 脸书总点赞数
movie['actor_director_facebook_likes'] = (
    movie['actor_1_facebook_likes'] +
    movie['actor_2_facebook_likes'] +
    movie['actor_3_facebook_likes'] +
    movie['director_facebook_likes']
)

movie.head()    # 查看内容
# movie.drop('has_seen')  # 报错, 需要指定方式, 按行删, 还是按列删.
# movie.drop('has_seen', axis='columns')    # 按列删
# movie.drop('has_seen', axis=1)            # 按列删, 这里的1表示: 列

movie.head().drop([0, 1])                # 按行索引删, 即: 删除索引为0和1的行
# insert() 表示插入列.   参数解释: loc:插入位置(从索引0开始计数), column=列名, value=值
# 总利润 = 总收入 - 总预算
movie.insert(loc=1, column='profit', value=movie['gross'] - movie['budget'])
movie.head()


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值