dataframe 一列的不同值_Pandas Cooking Book学习笔记(一):基础知识(1)--DataFrame...

一、DataFrame示意图

0f92337b2782b1e75fb56e873c98b61e.png

注意:Pandas使用NaN来表示缺失值

二、基本操作
1.从1开始,因为0用于存储Index和Column
2.head和tail用于显示DataFrame的前后N行,他们只接受一个参数,就是N,即几行,缺省5行
3.访问DataFrame的Index、Column和数据

movie = pd.read_csv(‘data/movie.csv’)
index = movie.index
输出值:index.value
columns = movie.columns
data = movie.values

4.获取数据类型

movie.dtypes:获取所有列的数据类型
moves.get_dtype_counts():获取各种数据类型的数量

5.选择一列作为Series

movie['director_name']或movie.director_name

ed37865bb743aca34ca402d2d19ba688.png


6. 行、列名操作
(1) 将某列指定为索引
方法一:指定某列

movie = pd.read_csv('data/movie.csv') movie2 = movie.set_index('movie_title') 

方法二:读入文件是制定

movie = pd.read_csv('data/movie.csv', index_col='movie_title')

(2)修改行、列名

  • 使用rename方法:DataFrame接受"旧列名:新列名"的map
idx_rename = {'Avatar':'Ratava', 'Spectre': 'Ertceps'} 
col_rename = {'director_name':'Director Name', 'num_critic_for_reviews': 'Critical Reviews'}
movie_renamed = movie.rename(index=idx_rename, columns=col_rename)
  • 转化为数组
movie = pd.read_csv('data/movie.csv', index_col='movie_title') 
index = movie.index 
columns = movie.columns 
index_list = index.tolist() 
column_list = columns.tolist()
index_list[0] = 'Ratava' 
index_list[2] = 'Ertceps' 
column_list[1] = 'Director Name' 
column_list[2] = 'Critical Reviews'
movie.index = index_list 
movie.columns = column_list

7.创建和插入列
(1)新建列

  • 使用统一值:
movie = pd.read_csv('data/movie.csv') 
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'])

(2)插入一列

profit_index = movie.columns.get_loc('gross') + 1 
movie.insert(loc=profit_index, column='profit', value=movie['gross'] - movie['budget'])
8.选择列

(1)选择多行

movie_actor_director = movie[['actor_1_name', 'actor_2_name',  'actor_3_name', 'director_name']]
cols = ['actor_1_name', 'actor_2_name', 'actor_3_name', 'director_name'] 
movie_actor_director = movie[cols]

(2)使用方法选择行

  • 根据类型选择

movie.select_dtypes(include=['int']).head()

  • 使用filter方法
movie.filter(like='facebook').head()
  • 使用正则表达式
movie.filter(regex='d').head()

9.使用列名排序

movie = pd.read_csv('data/movie.csv') 
movie.head()
disc_core = ['movie_title', 'title_year','content_rating', 'genres']
disc_people = ['director_name', 'actor_1_name','actor_2_name', 'actor_3_name'] 
disc_other = ['color', 'country', 'language','plot_keywords', 'movie_imdb_link']
new_col_order = disc_core + disc_people +disc_other + cont_fb + cont_finance + cont_num_reviews +cont_other
movie2 = movie[new_col_order] 
//这个实现的方法,其实就是利用了我们取DataFrame子集的方法,即[]。

二、在整个DataFrame上操作

  1. 获取简单的描述:shap:行列;size多少个单元;ndim维数;len:多少行
  2. count:各列的值的个数
  3. min、max、mean、median、std,各列的对应描述
  4. describe:各列的5类描述。我们也可以用percentiles来获取指定分位数的数量如:movie.describe(percentiles=[.01, .3, .99])

三、其他

  1. 方法链
  2. 在DataFrame上使用运算符
  3. 比较缺失值
  4. 调换DataFrame操作的方向

我们通常的运算都是以index为轴,我们可以通过使用axis='column'来以列为轴,如:
college_ugds_.count(axis='columns').head()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值