《《------------------------------------------------------------------------------------------------------》》
使用
Pandas 数据结构:一维数据结构
创建字典格式 : pd.Series({“今日销售量” : 10086,“今日成交金额”:“1000084”},time=‘2018.8.21’)
创建数组格式 : pd.Series([10086,1000084],index=[\'今日销售量\',\'今日成交金额\'],time=\'2018.8.21\')
《《------------------------------------------------------------------------------------------------------》》
Dataframe :二维数据结构 是一个表格形的数据结构 ,“带标签的二维数组” ,带有(index) and (列标签)
使用
data = {\'name\':[\'Jake\',\'Jeek\',\'Anmi\'],\'age\':[22,15,32],\'time\':[\'2019.2.1\',\'2019.3.1\',\'2019.4.2\']}
pd.DataFrame(data) 形成一个表格数据
创建的三种方法 :其他方法都不通用
1.data = {\'name\':[\'a\',\'b\',\'c\'],\'age\':[22,15,32],\'time\':[\'2019.2.1\',\'2019.3.1\',\'2019.4.2\']}
2. 第二种 设置两个一维数组 Series的方式
data={\'one\':pd.Series(np.random.rand(2)),\'two\':pd.Series(np.random.rand(3))} 不设置index的
data={\'one\':pd.Series(np.random.rand(2)),\'two\':pd.Series(np.random.rand(3)),index=[\'a\',\'b\',\'c\']} 设置 index的
3. 第三种 通过二维数组,指定index 和 colums
arr=np.arange(9).reshape(3,3)
data = pd.DataFrame(arr)
data = pd.DataFrame(data,index=[\'a\',\'b\',\'c\'],colums=[\'昨天\',‘今天’,‘明天’])
print(data)
重新指定cloums列名: pd.DataFrame(data,colums=[\'H5\',\'Json\',\'Dic\'])
出现问题:
?如果指定后,列名比数据多,那么该列下面的数据 显示 NaN
?如果指定后,列名少于数据,只会显示对应的列数据
《《------------------------------------------------------------------------------------------------------》》
Pandas 索引+切片 中筛选数据
Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习
列索引:df[\'列名\'] (Series不存在列索引)
行索引:df.loc[]、df.iloc[]
选择列 / 选择行 / 切片 / 布尔判断
data[\'one\',\'abc\'] 通过columns 选
data.loc[\'a\',\'b\',\'c\',\'d\',\'e\'] 通过行 选 这个里面切片是包含最后一个的
data.iloc[:3] 通过切片 用数字表示,3之前的行 不包含3
data[data>50] 数据大于50的值
data[data[\'a\'] > 50] a列 》 50 行数据
?选择出来后 按照 顺序放入 序列
data[data > 5].index().tolist() 转为数组 按照顺序
《《------------------------------------------------------------------------------------------------------》》
Pandas 基本技巧
df.head() 默认前5条数据,也可以在括号内指定数字
df.tail() 默认后5条数据
df.T() 转置 index 互换 columns | 列变行,行变列
添加和修改 删除数据行
(添加操作)
这个二维数据表格 index 只有 5,那么就把 index[6] 赋值
(修改操作)
df[\'a\'] = 200 df[\'a\'][0] = 333
(删除操作)
del df[\'a\'] 删除 columns 【a】
df.drop(0) 删除行 删除index 行
两个数据对齐合并 相加
就会 默认 对应行和列 对齐相加填充,如果没有的行和列,填充NaN
DataFrame 数据排序
random4 = np.random.rand(3,3)*100
print(random4)
data4 = pd.DataFrame(random4,columns=[\'a\',\'b\',\'c\'])
data5 = data4.sort_values([\'b\'],ascending = True) #升序 False #降序
data5
DataFrame 索引排序
data7.sort_index() #升序
data7.sort_index(inplace=True) #数据更新改变
《《------------------------------------------------------------------------------------------------------》》
DataFrame 数据计算和统计基础
# np.nan :空值
# .mean()计算均值
m2 = df.mean(axis=1) 1=行数值计算结果 0 = 列结果
# axis参数:默认为0,以列来计算,axis=1,以行来计算,这里就按照行来汇总了
# 只统计数字列
m3 = df.mean(skipna=False)