人工智能pandas数据分析
1、read_csv 读取文件
a = pd.read_csv(‘文件名’)
2、数据类型、内容读取
type(a)
打印a的类型
a.dtypes
打印a每一列里的数据的数据类型
a.head()
以表格的形式打印文件里的内容
a.head()显示前几行,a.tail()显示后几行
a.head(3)显示前3行
a.columns
a.columns获取每一列的列名,
a.columns.tolist()以列表的形式打印
a.shape
a.shape获取有多少行多少列
a.loc[0]
a.loc[0] 取第一行的数据(第一个标本的数据),切片也可以用,例;a.loc[1:2]
a.loc[3,‘name’] 取第三个标本name的值
a[‘列名’]
a[‘列名’],
a[‘列名1’,‘列名2’],
获取该列名下所有数据,
3、columns.tolist() 取某一列的数据
#取以g为结尾的列
aa = a.columns.tolist()
aa_1 = []
for i in aa:
if i.endswith(’(g)’): # 选取带有(g)的列名
aa_1.append(i)
aa_2 = a[aa_1]
print(aa_2.head(3)) # 取前3列打印
4、数据计算、取值、排序
a[‘列名’] * 10
将某列的数据*10
a[‘列名’].max()
求某列的最大值,同样的还可以.min()等
a.sort_values(‘列名’,inplace=True)
按照某列里的值从小到大排列a,如果为空值放最后
inplace=False,表示生成新的不对原来的a进行改变
a.sort_values(‘某列’,inplace=True,ascending=False)从大到小排列
a.reset_index(drop=True)
重新开始a的索引值
5、 a[‘列名’] = [新列] 插入新的列
a_1 = ( a[‘p(g)’] * a[‘o(g)’] ) /2
a[‘op(g)’] = a_1 # 插入了一个新列op(g),其值为a_1里的值
print(a)
6、缺失值
pandas.isnull(a[‘列名’]) 检查缺失值
a_null = pd.isnull(a[‘age’])
#检测缺失值,有值返回false,缺失值返回true
print(a_null)
a_NAN = a[‘age’][a_null]
#找到a[‘age’]中的缺失值
print(len(a_NAN))
#输出缺失值个数
a.dropna(axis=1)丢掉缺失值
a_nonull = a.dropna(axis=1)
#丢掉缺失值,a.dropna(axis=1)丢掉所有缺失值
a_nonull1 = a.dropna(axis=0,subset=[‘age’,‘p(g)’])
#丢掉’age’,'p(g)'中的缺失值
7、pivot_table求平均值
#求age的平均数
c_age = a[‘age’][a_null == False]
#把缺失值变成False,方便计算,缺失值无法计算
print( sum(c_age) / len(c_age))
#age的平均值
#求age的平均数另一种方法
print(a[‘age’].mean())
#.mean()可以自动省略缺失值然后求平均数
#分类求平均值示例 : 用数据里的loor作为分类标准,求没一类的t(kg)平均值
#第一种
loor = [1,2,3,4,5]
p_loor = {}
for the_loor in loor:
a_rows = a[a[‘loor’] == the_loor]
#循环 the_loor=1,2…时对应a[‘loor’]的值
l_tkg = a_rows[‘t(kg)’].mean()
#找到a[‘loor’]对应a[‘t(kg)’]的平均值
p_loor[the_loor] = l_tkg
#把l_tkg 里的值存到 p_loor[the_loor]
print(p_loor)
#第二种
p_loor1 = a.pivot_table(index=‘loor’,values=‘t(kg)’,aggfunc=np.mean)
#pivot_table统计两个量关系的函数
#index 以谁为基准,values需要计算的值,aggfunc计算方式
print(p_loor1)
p_loor2 = a.pivot_table(index=‘loor’,values=‘t(kg)’)
#没有最后一个值,默认算平均数
print(p_loor2)
p_loor3 = a.pivot_table(index=‘loor’,values=[‘t(kg)’,‘o(g)’],aggfunc=np.sum)
print(p_loor3)
8、apply自定义函数
def row_5(m): #取第5个数值
item_5 = m.loc[4]
return item_5
aa = a.apply(row_5)
#apply可以传入函数名,apply里面还可以有axis=?,表示传入函数的值,传入值为a本身的时候不用写
# coding=gbk
import pandas as pd
import numpy as np
a = pd.read_csv('041、pandas.csv') # 读取csv文件
print(type(a)) # 打印a的类型
print(a.dtypes) # 打印a每一列里的数据的数据类型
print(a.head()) # 以表格的形式打印文件里的内容
# a.head()显示前几行,a.tail()显示后几行
# a.head(3)显示前3行
print(a.columns) # a.columns获取每一列的列名,a.columns.tolist()以列表的形式打印
print(a.shape) # a.shape获取有多少行多少列
print(a.loc[0]) # a.loc[0]取第一行的数据(第一个标本的数据),切片也可以用,例;a.loc[1:2]
print(a.loc[3,'name']) # 取第三个标本name的值
print(a['name']) # a['列名'],获取该列名下所有数据,a['列名','列名']
# 取以g为结尾的列
aa = a.columns.tolist()
aa_1 = []
for i in aa:
if i.endswith('(g)'): # 选取带有(g)的列名
aa_1.append(i)
aa_2 = a[aa_1]
print(aa_2.head(3)) # 取前3列打印
#数据计算、取值、排序
print(a['o(g)'] * 10) # 将o(g)列的数据*10
print(a['o(g)'].max()) # 求o(g)列的最大值
a.sort_values('o(g)',inplace=True) # 按照o(g)里的值从小到大排列a,如果为空值放最后
#inplace=False,表示生成新的不对原来的a进行改变
#a.sort_values('o(g)',inplace=True,ascending=False)从大到小排列
print(a)
print(a['o(g)'])
# a.reset_index(drop=True) #重新开始a的索引值
#插入新的列
a_1 = ( a['p(g)'] * a['o(g)'] ) /2
a['op(g)'] = a_1 # 插入了一个新列op(g),其值为a_1里的值
print(a)
#检查缺失值
a_null = pd.isnull(a['age']) # 检测缺失值,有值返回false,缺失值返回true
print(a_null)
a_NAN = a['age'][a_null] # 找到a['age']中的缺失值
print(len(a_NAN)) # 输出缺失值个数
#丢掉缺失值
a_nonull = a.dropna(axis=1) # 丢掉缺失值,a.dropna(axis=1)丢掉所有缺失值
a_nonull1 = a.dropna(axis=0,subset=['age','p(g)'])#丢掉'age','p(g)'中的缺失值
#求age的平均数
c_age = a['age'][a_null == False] # 把缺失值变成False,方便计算,缺失值无法计算
print( sum(c_age) / len(c_age)) # age的平均值
#求age的平均数另一种方法
print(a['age'].mean()) # .mean()可以自动省略缺失值然后求平均数
#分类求平均值示例 : 用数据里的loor作为分类标准,求没一类的t(kg)平均值
#第一种
loor = [1,2,3,4,5]
p_loor = {}
for the_loor in loor:
a_rows = a[a['loor'] == the_loor] # 循环 the_loor=1,2..时对应a['loor']的值
l_tkg = a_rows['t(kg)'].mean() # 找到a['loor']对应a['t(kg)']的平均值
p_loor[the_loor] = l_tkg # 把l_tkg 里的值存到 p_loor[the_loor]
print(p_loor)
#第二种
p_loor1 = a.pivot_table(index='loor',values='t(kg)',aggfunc=np.mean)
# pivot_table统计两个量关系的函数
# index 以谁为基准,values需要计算的值,aggfunc计算方式
print(p_loor1)
p_loor2 = a.pivot_table(index='loor',values='t(kg)') # 没有最后一个值,默认算平均数
print(p_loor2)
p_loor3 = a.pivot_table(index='loor',values=['t(kg)','o(g)'],aggfunc=np.sum)
print(p_loor3)
# 自定义函数
def row_5(m): # 取第5个数值
item_5 = m.loc[4]
return item_5
aa = a.apply(row_5) # apply可以传入函数名,apply里面还可以有axis=?,表示传入函数的值,传入值为a本身的时候不用写
print(aa)