Pandas基础点总结

前言

pandas是用于数据分析的开源python库,可以实现数据加载,清洗,转换,统计处理,可视化等功能。而DataFrame和Series是pandas最基本的两种数据结构。DataFrame用来处理结构化数据,Series用来处理单列数据,也可以把DataFrame看作Series对象组成的字典或集合。

一、创建series对象

import pandas as pd
import numpy as np
# 创建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))
# 不用ndarray方式,直接传入列表,元组,字典
s2=pd.Series([1,2,3],index=['a','b','c'])
print(s2)
print(type(s2))
print('------------')
s3=pd.Series((4,5,6),index=['a','b','c'])
print(s3)
print(type(s3))
print('------------')
s4=pd.Series({'a':7, 'b':8, 'c':9})
print(s4)
print(type(s4))

 二、创建DataFrame对象

 1.指定行索引和列的位置

# 指定行索引,和 列的位置
import pandas as pd
df=pd.DataFrame({'id':[1,2,3],'name':['zhangsan','lisi','wangwu'],'age':[12,13,12]},index=['A','B','C'],columns=['age','id','name'])
print(df)

 2.列表嵌套元组

# 传入列表嵌套元组
df1=pd.DataFrame(data=[(1,'zhangsan','23'),(2,'lisi','23'),(3,'wangwu','23')],index=['A','B','C'],columns=['id','name','age'])
print(df1)

三、Series属性-索引-运算 

一、series属性和方法

import pandas as pd
# 设置id列为索引列
data=pd.read_csv('./nobel_prizes.csv',index_col='id')
data.head()
first_row=data.loc[941] # 按照行索引获取行数据
print(first_row)
two_row=data.iloc[1]    # 按照行号获取行数据
print(two_row)
  • append 连接两个或多个Series
  • corr 计算与另一个Series的相关系数
  • cov 计算与另一个Series的协方差
  • describe 计算常见统计量
  • drop_duplicates 返回去重后的Series
  • equals 判断两个Series 是否相同
  • get_values 获取Series的值,作用与values属性相同
  • hist 绘制直方图
  • isan Series中是否包含某些值
  • min 返回最小值
  • max 返回最大值
  • median 返回中位数
  • mean 返回平均值
  • mode 返回众数
  • quantile 返回指定位置的分位数
  • replace 用指定值代替Series中的值
  • sample 返回Series 的随机采样值
  • sort_values 对值进行排序
  • to_frame 把Series 转换为DataFrame
  • unique 去重返回数组
  • values_counts 统计不同值数量
  • keys 获取索引值
  • head 查看前5个值
  • tail 查看后5个值
  • import pandas as pd
    
    # 创建s对象
    s1 = pd.Series(data=[1, 2, 3, 4, 2, 3], index=['A', 'B', 'C', 'D', 'E', 'F'])
    # 查看s对象值数量
    print(len(s1))
    # 查看s对象前5个值, n默认等于5
    print(s1.head())
    print(s1.head(n=2))
    # 查看s对象后5个值, n默认等于5
    print(s1.tail())
    print(s1.tail(n=2))
    # 获取s对象的索引
    print(s1.keys())
    # s对象转换成python列表
    print(s1.tolist())
    print(s1.to_list())
    # s对象转换成df对象
    print(s1.to_frame())
    # s对象中数据的基础统计信息
    print(s1.describe())
    # s对象最大值、最小值、平均值、求和值...
    print(s1.max())
    print(s1.min())
    print(s1.mean())
    print(s1.sum())
    # s对象数据值去重, 返回s对象
    print(s1.drop_duplicates())
    # s对象数据值去重, 返回数组
    print(s1.unique())
    # s对象数据值排序, 默认升序
    print(s1.sort_values(ascending=True))
    # s对象索引值排序, 默认升序
    print(s1.sort_index(ascending=False))
    # s对象不同值的数量, 类似于分组计数操作
    print(s1.value_counts())

    布尔索引

import pandas as pd
data=pd.read_csv('./scientists.csv')
data
# 统计所有大于平均年龄的数据
# 1. 获取所有的年龄.
ages = data.Age

# 2. 获取所有年龄的 平均值
age_mean = ages.mean()
age_mean

# 3. 查询所有 大于平均年龄的数据. 
ages[ages > age_mean]       # [False, True, True, True, False, False, False, True]

# 上述需求, 一行既能搞定, 写法如下
# df['Age'][df['Age'] > df['Age'].mean()] 

data.Age[data.Age > data.Age.mean()] 

二、运算

ages = df['Age']
print(ages + 10)
print(ages * 2)
print(ages + ages)
print('=' * 20)
print(pd.Series([1, 100]))
print('=' * 20)
print(ages + pd.Series([1, 100]))

 四、DataFrame属性-索引(更改)

一、DataFrame属性 

import pandas as pd
df=pd.read_csv('./movie.csv')
df
print(df.shape) #维度
print(df.size) #长度
print(df.ndim) #数组轴,二维表
print(df.index)
print(df.values)
print(df.dtypes)
# print(df.info) #查看内容信息
df.describe() # 查看完整信息 #默认只展示数值型特征列
# df.describe(exclude=['int']) #过滤掉,不展示
# df.describe(exclude=['int','float']) # “过滤掉”,不展示
df.describe(include='all') # “过滤出”,展示所有列
# len(df) #统计行数
# df.count() #统计每列非空值行数
df.duration.max() 
# df.num_voted_users.min() 
# df.max()  #统计每列最大值
# df.min() #统计每列最小值
# df.mean() #统计每列平均值,只针对于数字列有效
df.director_facebook_likes.max() 

 二、DataFrame索引相关

# 2. df对象, 也支持 布尔索引, 入门案例如下.
df.head()[[False, True, 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值