Series计算和DataFrame常用属性方法

Series的布尔索引

从Series中获取满足某些条件的数据,可以使用布尔索引

然后可以手动创建布尔值列表

代码语言:javascript
复制
bool_index = [True,False,False,False,True]
scientists[bool_index]  # 查询行索引,列索引是用列名

筛选年龄大于平均年龄的科学家

代码语言:javascript
复制
age_mean = sci['Age'].mean()
sci['Age']>age_mean
# 生成
0    False
1     True
2     True
3     True
4    False
5    False
6    False
7     True

我们通过逻辑运算获取了对应的布尔值,只需要将布尔值作为索引就可以获得对应的元素

代码语言:javascript
复制
sci[sci['Age']>age_mean]

Series 的运算

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

两个Series之间计算,如果Series元素个数相同,则将两个Series对应元素进行计算

代码语言:javascript
复制
sci['Age']+sci['Age']   # age列值增加一倍

元素个数不同的Series之间进行计算,会根据索引进行  索引不同的元素最终计算的结果会填充成缺失值,用NaN表示.NaN表示Null

DataFrame常用属性方法

ndim是数据集的维度  size是数据集的行数乘列数  count统计数据集每个列含有的非空元素

也可以利用布尔索引获取某些元素(使用逻辑运算获取最小值)

更改Series 和DataFrame

通过set_index()方法设置行索引名字 加载数据文件时,如果不指定行索引,Pandas会自动加上从0开始的索引

如果提前写好行索引的列表,可以用set_index引入进来,也可以直接写入列表内容

加载数据的时候,也可以通过通过index_col参数,指定使用某一列数据作为行索引

代码语言:javascript
复制
movie2 = pd.read_csv('data/movie.csv',index_col='movie_title')
代码语言:javascript
复制
movie.set_index('movie_title',inplace=True)  
# pandas的API中, 凡是涉及数据修改的, 基本都有一个inplace参数, 默认值都是False, inplace参数用来控制实在副本上修改数据, 还是直接修改原始数据

通过reset_index()方法可以重置索引,将索引重置成自动的索引

 修改列名(columns) 和 行索引(index)名:

1.通过rename()方法对原有的行索引名和列名进行修改

2.将index 和 columns属性提取出来,修改之后,再赋值回去

3.通过dataframe[列名]添加新列

4.使用insert()方法插入列 loc 新插入的列在所有列中的位置(0,1,2,3...) column=列名 value=值

代码语言:javascript
复制
# index 如何调整行名字 传入字典 {老名字: 新名字, 老名字:新名字}
# columns 如何调整列名 传入字典 {老名字: 新名字, 老名字:新名字}
movie2.rename(index={'Avatar':'阿凡达','Star Wars: Episode VII - The Force Awakens':'星球大战7'},columns={'director_name':'导演名字','actor_1_name':'主演'}).head()
代码语言:javascript
复制
# 添加一列
movie['社交媒体点赞总数'] = movie.actor_1_facebook_likes+movie.actor_2_facebook_likes+movie.actor_3_facebook_likes+movie.director_facebook_likes
# 删除一列
movie.drop('社交媒体点赞总数',axis='columns',inplace=True)
# 插入一列
movie.insert(loc=0,column='利润',value=movie['gross']-movie['budget'])
代码语言:javascript
复制
columns = movie2.columns
columns = columns.to_list()   # 将原列名放入列表
columns[1] = '导演'
columns[3] = '时长'
movie2.columns = columns      # 将修改后的列表命名为数据的全部列名