Series常用操作【知道】
- Series创建:传入一个Python列表
- 如果传入的数据类型是统一的数字,那么最终的dtype类型是int64
- 如果传入的数据类型是统一的字符串,那么最终的dtype类型是object
- 如果传入的数据类型是多种类型,那么最终的dtype类型也是object
# data=,传入要python列表;index=指定行索引,不传的话行索引默认为0,1,2...
pd.Series(data=,index=)
# 例子1
s = pd.Series(['banana', 42])
# 输出结果如下
0 banana
1 42
dtype: object
#例子2
s = pd.Series(['Wes McKinney','Male'],index = ['Name','Gender'])
# 输出结果如下
Name Wes McKinney
Gender Male
dtype: object
- Series常用属性
s.index # 获取行索引,属性
s.keys() # 获取行索引,方法
# 属性后面不加(),方法后面加()
s.values # 获取值
- Series常用方法
s.mean() # 平均值
s.max() # 最大值
s.min() # 最小值
s.std() # 标准差
s.value_counts() # 不同值(不同类别)的条目数量
s.count() # 非空值个数
s.describe()
# 输出数值列统计描述:①count非空值个数,②mean平均值,③std标准差,④max最小值,⑤25%四分之一分位值,⑥50%二分之一分位值,⑦75%四分之三分位值,⑧最大值
# 输出非数值列统计描述:①count非空值个数,②unique唯一值个数,③top出现次数最多的值,④freq出现最多值的次数
- 通过布尔值列表获取Series部分数据
s[[True,False,True,False]]
# 返回为True的值,最后返回两个值
- Series运算
- series和数值型变量计算
- 变量和series中的每个元素逐一进行计算
- 两个Series之间计算
- 根据索引匹配规则进行计算,相同的索引进行计算,不同的索引无法计算,用NaN填充
- series和数值型变量计算
DataFrame常用操作【重要】
- 常用属性和方法
df.shape # 查看行数,列数
df.size # 查看数据个数
len(df) # 查看数据行数
df.count() # 查看各列非空值个数
df.max() # 查看各列最大值,数值列返回最大值,非数值列返回出现次数最多的值
df.min()
df.describe() # 返回数值列统计描述
- DataFrame的布尔索引
- 同Series一样,DataFrame也可以使用布尔索引获取数据子集
# 获取前5行数据中的第1、2、4个
movie.head()[[True,True,False,True,False]]
- dataframe的运算
- 当DataFrame和数值进行运算时,DataFrame中的每一个元素会分别和数值进行运算
- 两个DataFrame之间进行计算,和series一样会根据索引的值进行对应计算
- 当两个DataFrame索引值不能对应时,不匹配的会返回NaN
- DataFrame中如果有非数值列,只能进行相加或者相乘的操作,对非数值列进行复制,其他计算会发生报错
- 指定某列为DataFrame索引
df.set_index('列名') # 括号里列为指定索引列
pd.read_csv('path',index_col='列名') # 加载数据时通过index_col指定某列为df的索引
df.reset_index() # 重置索引,变为0,1,2,3...
- 修改行名列名
# 方法一
df.rename(index={'原行名1':'新行名1','原行名2':'新行名2'...},columns={'原列名1':'新列名1','原列名2':'新列名2'...},inplace=True)
# index=,columns= 后跟要修改的行列名字典
# inplace=True 在源数据上修改,默认False,在内存或者副本上修改,源数据并没有修改
# 涉及到df修改删除操作,不指定inplace=True,默认源数据不会进行修改,或者将修改的数据重新保存为一个变量名
# 方法二
将df.index 和 df.columns属性提取出来,修改之后,再赋值回去
-
添加删除插入
-
通过
dataframe['列名']
添加新列,添加至最后df['新列名'] = 常数 df['新列名'] = df['列名1'] + df['列名2'] # 数值列加减乘除都可以,一行一行计算
-
删除列
df.drop('列名',axis='columns',inplace=True) # inplace=True源数据上删除,axis='columns',默认按行删除,axis='index'
-
插入列
df.insert(loc=列下标数字, column='列名', value=该列所有的值) # loc= 插入列的位置,按列索引序号 # column= 新插入列的名字 # value= 新插入列的值,可以是常用,也可以是计算完的结果
-