栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据分析软件(数据分析需要学哪些)

数据分析软件(数据分析需要学哪些)

pandas

常用数据类型

Series创建

Series切片和索引 Dataframe

读取外部数据dataframe创建dataframe基本属性查询 排序取行列布尔索引字符串方法缺失数据处理

numpy能够帮我们处理处理数值型数据,但除了数值之外,还有字符串,还有时间序列等,pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据。

常用数据类型

Series 一维,带标签数组Dataframe 二维,Series容器 Series创建

Series 一维,带标签数组

import pandas as pd
t = pd.Series([1,2,31,12,3,4])
print(t)

#结果为:
0     1
1     2
2    31
3    12
4     3
5     4
dtype: int64
import pandas as pd
t = pd.Series([1,2,31,12,3,4],index=list('abcdef'))
print(t)

#结果为:
a     1
b     2
c    31
d    12
e     3
f     4
dtype: int64
import pandas as pd
dict_temp = {'name':'zzz','age':18,'sex':'man'}
t =pd.Series(dict_temp)
print(t)

#结果为:
name    zzz
age      18
sex     man
dtype: object

Series切片和索引


切片和索引注意一下冒号和逗号的使用!

查看索引值与值:

Dataframe 读取外部数据

数据存在csv中,我们直接使用pd. read_csv即可

对于数据库比如mysql或者mongodb中数据,pd.read_sql(sql_sentence,connection)

dataframe创建


Dataframe对象既有行索引,又有列索引
行索引,表明不同行,横向索引,叫index,0轴,axis=0
列索引,表名不同列,纵向索引,叫columns,1轴,axis=1

d1 = [{'name':'sss','age':16},{'name':'zzz','age':19},{'name':'ttt','age':18}]
d2 = {'name':['ccc','ggg'],'age':[12,15]}
t1 = pd.Dataframe(d1)
t2 = pd.Dataframe(d2)
print(t1)
print(t2)

#结果为:
  name  age
0  sss   16
1  zzz   19
2  ttt   18
  name  age
0  ccc   12
1  ggg   15
d1 = [{'name':'sss','age':16},{'name':'zzz','age':19},{'name':'ttt','age':18}]
d2 = {'name':['ccc','ggg'],'age':[12,15]}
d3 = np.arange(12).reshape(3,4)
t1 = pd.Dataframe(list(d1[0:2]))
t2 = pd.Dataframe(d2)
t3 = pd.Dataframe(d3,index=list('abc'),columns=list('qwer'))
print(t1)
print(t2)
print(t3)

#结果为:
  name  age
0  sss   16
1  zzz   19
  name  age
0  ccc   12
1  ggg   15
   q  w   e   r
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
dataframe基本属性查询


展示部分:

d1 = [{'name':'sss','age':16},{'name':'zzz','age':19},{'name':'ttt','age':18}]
t1 = pd.Dataframe(list(d1[0:2]))
print(t1)
print(t1.shape)
print(t1.values)
print(t1.dtypes)

#结果为:
  name  age
0  sss   16
1  zzz   19
(2, 2)
[['sss' 16]
 ['zzz' 19]]
name    object
age      int64
dtype: object
排序

按年龄排序:

d1 = [{'name':'sss','age':16},{'name':'zzz','age':19},{'name':'ttt','age':18}]
t1 = pd.Dataframe(d1)
t2 = t1.sort_values(by='age',ascending=False)
print(t2)
取行列

1、方法一:
取行:方括号中写数组
取列:写字符串

d1 = [{'name':'sss','age':16},{'name':'zzz','age':19},{'name':'ttt','age':18}]
t1 = pd.Dataframe(d1)
t2 = t1.sort_values(by='age',ascending=False)
print(t2[:2])
print(t2['name'])

#结果为:
  name  age
1  zzz   19
2  ttt   18
1    zzz
2    ttt
0    sss
Name: name, dtype: object

2、方法二:loc与iloc
df.loc 通过标签索引行数据
df.iloc 通过位置获取行数据

d1 = np.arange(12).reshape(3,4)
t1 = pd.Dataframe(d1,index=list('abc'),columns=list('wxyz'))
print(t1)
s = t1.loc['a','x']
s1 = t1.loc['a',:]
s2 = t1.loc[['a','c'],:]
print(s)
print(s1)
print(s2)

#结果为:
   w  x   y   z
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
1
w    0
x    1
y    2
z    3
Name: a, dtype: int32
   w  x   y   z
a  0  1   2   3
c  8  9  10  11
d1 = np.arange(12).reshape(3,4)
t1 = pd.Dataframe(d1,index=list('abc'),columns=list('wxyz'))
print(t1)
s = t1.iloc[:,2]
s1 = t1.iloc[[0,1],:]
print(s)
print(s1)

#结果为:
   w  x   y   z
a  0  1   2   3
b  4  5   6   7
c  8  9  10  11
a     2
b     6
c    10
Name: y, dtype: int32
   w  x  y  z
a  0  1  2  3
b  4  5  6  7
布尔索引

两个条件时不可以写在一起,两个条件必须用括号括起来,必须分开用&或|连接,并且打印的是该条信息:

d1 = np.arange(12).reshape(3,4)
t1 = pd.Dataframe(d1,index=list('abc'),columns=list('wxyz'))
print(t1)
print()
print(t1[(4 
字符串方法 

缺失数据处理


我们的数据缺失通常有两种情况:
一种就是空,None等,在pandas是NaN(和np.nan一样)
另一种是我们让其为0,蓝色框中

对于NaN的数据

判断数据是否为NaN:pd.isnull(df),pd.notnull(df)

处理方式1:删除NaN所在的行列dropna (axis=0, how=‘any’, inplace=False)

其中how参数为all时则那一行所有为nan才删除

处理方式2: 填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)
只填充某一列,则将t换成t[“标签”]

处理为0的数据:t[t==0]=np.nan

当然并不是每次为0的数据都需要处理
计算平均值等情况,nan是不参与计算的,但是0会

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号