建议在Jupyter Notebook 中运行
jupyter notebook环境搭建
文章目录
- 1.dataframe 常用属性
- 2.dataframe 的常用方法
- 3.dataframe 对象的 布尔值操作
- 4. datafrane 对象的计算
- 5. 更改series 和 dataframe 对象
- 5.2 修改行名和列名
- 5.3 添加 删除 插入列
- 6.导入和导出数据
- 6.1 导入数据
- 6.2导入数据
import os
import pandas as pd
import numpy as np
import os
os.chdir(r'D:\hm\homework\pywork\workProject\numpyProject')
# 改变当前的工作目录 change work directory
1.dataframe 常用属性
# 读取文件 获取 df对象
df = pd.read_csv('./data/scientists.csv')
df.head
# 演示 df对象常用属性
print(df.shape) # 维度
print(df.size) # 元素个数
print(df.values) # df对象 -> ndarray 形式
print(df.dtypes) # 各列的元素类型
print(df.ndim) # 维度
print(df.index) # 所有索引列的值
print(df.columns) # 获取所有列名
2.dataframe 的常用方法
print(len(df))
print(df.head())
print(df.head(n=2))
print(df.tail())
print(df.tail(n = 2))
print(df.info) # 查看各列基本信息
print(df.describe()) # 查看各列统计信息 包括 平均值 方差 最大值 最小值 等
print(df.describe(include='all')) # 查看各列统计信息 包括 平均值 方差 最大值 最小值 等
print(df.describe(exclude = ['int','float'])) # 查看各列统计信息 包括 平均值 方差 最大值 最小值 等
print(df.count())
print(df.max())
print(df.min())
print(df.mean()) # 查看数值列的平均值
3.dataframe 对象的 布尔值操作
# df对象 和Series 对象 一样 也是支持布尔操作 的
# 需求 过滤出 df 对象中 age 大于平均年龄的数据行
print(df[df.Age > df.Age.mean()]) # df对象的布尔值 操作
df.Age[df.Age > df.Age.mean()] # series对象的 布尔值操作
# 过滤出 df 对象 前5行中 第 1 , 3, 4 行 索引 是 0 2 3
df.head()[[True,False,True,True,False]] # 传入的是布尔列表
4. datafrane 对象的计算
# 和 Series 对象一样 df 计算也是分两种情况
# 1. 和数值运算的时候 数值会和df对象的每个值进行计算
# 2. 和新的df计算的时候 会优先参考索引 对应用索引进行计算 不匹配返回 NAN
# 一 df 和数值计算
print(df * 2)
# 二 df 和 df计算
print(df + df)
print(df + df[:4]) # 类似于 python 的切片 即获取前四行 包左不包右
5. 更改series 和 dataframe 对象
## 5.1 设置和取消索引列
# pandas 中 某个函数 如果有 inplace 函数大部分会返回新副本 把inplace设置为True 则会修改原对象
# 一 读取数据不设置索引列 读取完毕后 设置索引列
movie = pd.read_csv('data/movie.csv')
movie.head()
# 设置 movie_title 索引列
movie.set_index('movie_title' ,inplace=True)
# 查看设置后的内容
movie.head()
# 二 读取数据时 直接设置索引列
movie = pd.read_csv('data/movie.csv',index_col = 'movie_title')
movie.head()
# 三 重置索引列
movie.reset_index(inplace= True)
movie.head()
5.2 修改行名和列名
# 一 rename() 实现
df = pd.read_csv('data/movie.csv',index_col = 'movie_title')
df.head()
# 手动修改 行名(索引列) 和 列名
# 索引列
idx_name = {'Avatar': '阿凡达'}
# 列名
col_name = {'color':'颜色'}
# 通过rename 修改
df.rename(index = idx_name , columns= col_name, inplace= True)
# 查看修改后的结果
df.head()
# 二 读取所有的行名 列名 修改后 设置给df对象'
df = pd.read_csv('data/movie.csv',index_col = 'movie_title')
df.head()
# 获取所有的行名
idx_list = df.index.to_list()
col_list =df.columns.to_list()
# 修改列名和行名
idx_list[0] = '阿凡达'
col_list[0] = '颜色'
df.index = idx_list
df.columns = col_list
df.head()
5.3 添加 删除 插入列
df = pd.read_csv('data/movie.csv',index_col = 'movie_title')
df.head()
# 添加列 格式 df对象 = 值
df['has_seen'] = 1
df.head()
# 添加一列 表示 电影总的脸书 点赞数 总点赞数 = 导演 + 演员点赞数
df['director_actor_all_facebook_likes'] = df['director_facebook_likes'] + df['actor_1_facebook_likes'] + df['actor_2_facebook_likes'] + df['actor_3_facebook_likes']
print(df)
# 删除列
df.drop('has_seen',inplace= True,axis='columns')
df.head()
6.导入和导出数据
6.1 导入数据
# 如果使用excel 先装3个包
df = pd.read_csv('data/scientists.csv')
df.head()
# 导出数据 output文件夹必须存在
df.to_pickle('output/scientists.pickle')
df.to_csv('output/scientists.csv') # 索引列也会导出
df.to_csv('output/scientists.csv',index = False) # 索引列不会导出
df.to_csv('output/scientists.tsv',index=False,sep='\t')
df.to_excel('output/scientists.xlsx',index = False , sheet_name = '123')
df.to_excel('output/scientists.xlsx')
6.2导入数据
pd.read_pickle('output/scientists.pickle')
# 1. 读取文件, 获取df对象
# df = pd.read_pickle('output/scientists.pickle')
# df = pd.read_csv('output/scientists.csv')
# df = pd.read_csv('output/scientists_noindex.csv')
# df = pd.read_csv('output/scientists_noindex.tsv', sep='\t') # 读取tsv的时候, 指定分隔符
# df = pd.read_excel('output/scientists.xlsx')
# 如果不写表名, 则默认读取第1个表, 如果写了, 则读取指定的表. 可以是一张表, 也可以是多张表.
# 1张表的情况下, 返回的是: df对象.
# 多张表的情况下, 返回的是: 字典, 即: 表名做键, 该表的df对象做值.
df = pd.read_excel('output/scientists_noindex.xlsx', sheet_name=['ai21', 'ai22'])
标签:head,Jupyter,python,movie,Dataframe,df,scientists,print,csv
From: https://blog.csdn.net/weixin_57336987/article/details/142398025