一:Pandas的两种数据结构:
- Series : Series是一个一维的容器。和python的列表很相似,但是每个元素的数据类型必须相同。
- DateFrame :DateFrame是一个二维的容器,DataFrame可以看做是个字典,键是列名,值是Series。
二:Series创建和属性:
1:Series的创建:
2:Series常见的属性:
- 1:加载csv文件时,指定index_col就能得到一个Series对象。
- 2:使用行索引标签可以选中一条记录。
- 3:可以通过 index 和 values属性获取行索引和值。
- 4:也可以通过keys()方法获取所有的行索引。
3:Series常见的方法:
- 1: mean() 取平均
- 2:min()取最小值
- 3:max()取最大值
- 4:std()取标准差
- 5:value_counts()方法,可以返回不同值的条目数量。
- 6:count() : 统计非空数量。
- 7:通过describe()方法打印描述信息。
拿到所有名字,包括重复的,然后根据名字分组,统计每组的数量,然后逆序排序。
4:Series的布尔索引:
- 1:ages>ages.mean()得到的是每个数据和平均值比较的结果:True/False
- 2:相当于一个列表ages[True, False, True], 结果就是只显示为True的。
5:Series的运算:
- 1:Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算。
- 2:两个Series之间计算,如果Series元素个数相同,则将两个Series对应元素进行计算。
- 3:元素个数不同的Series之间进行计算,会根据索引进行。索引不同的元素最终计算的结果会填充成缺失值,用NaN表示。
- 4:Series之间进行计算时,数据会尽可能依据索引标签进行相互计算。
三:DataFrame创建和属性以及方法:
1:DataFrame的创建:
2:DataFrame常见的属性:
- 1:.shape 行和列
- 2:.size 数据的个数
- 3:.ndim 数据集 的维度
- 4:len() 数据集的长度
- 5:.count()各个列的个数:
- 6:.min() 各个列的最小值
- 7: describe() 各个列的描述详情。
3:DataFrame的布尔索引:
4:DataFrame的运算:
- 1: DataFrame与数字运算,每个元素与数字运算,如果是数字则运算,如果是字符串与数字,则可能是字符串成倍增加:scientists*2
- 2:两个 DataFrame,根据索引,一一运算。
- 3:两个DataFrame数据条目数不同时,会根据索引进行计算,索引不匹配的会返回NaN。
四:更改Series和DataFrame:
1: 设置行索引:
1: 加载某一行的时候指定某一列作为索引:
movie = pd.read_csv(‘C:/Users/11737/Desktop/机器学习课件/data/movie.csv’, index_col=‘movie_title’)
movie
2:重置索引:
movie.reset_index() 注意这个重置索引是暂时的,不是永久的,只是这一次恢复原来的索引。
2: 修改行名和列名:
1: 查看前5条行索引:movie.index[:5]
2: 查看前5条列索引:movie.columns[:5]
3: 修改行名和列名:
idx_rename = {‘Avatar’:‘Ratava’, ‘Spectre’: ‘Ertceps’}
col_rename = {‘director_name’:‘Director Name’, ‘num_critic_for_reviews’: ‘Critical Reviews’}
movie.rename(index=idx_rename,columns=col_rename).head()
注意:先定义字典,键是原名,值是修改后的名字。
使用的方法是:rename(index=, columns= )
4: 另外一种方法:提取索引,修改。重新赋值: