本文主要讲pandas的基本操作
- pandas的文件读取
- pandas数据过滤
- 缺省值处理
- 常用统计函数处理
数据读取
import numpy as np
import pandas as pd 读取csv文件
data = pd.read_csv('data1.csv')
data
读取xlsx文件,
data2 = pd.read_excel('data2.xlsx')
data2
读取txt文件
#读取文本、
# data3 = pd.read_csv('data3.txt',sep = ';',header =None)
data3 = pd.read_csv('data3.txt',sep = ';')
data3
pandas数据过滤
所有的列进行索引
data3['语文'] = [70,82.5,90]
data3['数学'] = [72,83.5,88]
data3['英语'] = [72,np.NaN,88]
print(data3.columns)
data3
只在3列以后进行显示
data = data3[data3.columns[3:]]
#data = data3.columns[3:]
print(data)
缺失值得处理办法
#删除nan值
data3 = data3.dropna()
data3
#字典创建DataFrame
dict = {
'name':['joe','susan','black'],
'age':[19,19,20],
'sex':['men','women','men'],
'classid':1
}
df = pd.DataFrame(dict,index = ['one','two','three'])
print(df)
print('________________')
#添加列
df['adress'] = np.NaN
print(df)
print('________________')
#添加行
df.loc['four'] = np.NaN
print(df)
是否为nan
#isnull notnull
print(df.isnull())
print(df.notnull())
给nan添加值
#给NaN添加值
df.loc['one','adress'] = 'shanghai'
print(df)
print(df.dropna())#默认删除只要包含NaN得行
print(df.dropna(how = 'all')) #之丢弃全部为NaN的数据
#print(df)
#添加nan值
df = pd.DataFrame(np.random.randint(1,7,size=(5,3)))
print(df)
print('_____________________')
#1,2,3行为nan,1列为nan
df.loc[1:3,1] = np.NaN
print(df)
print('_____________________')
df.loc[1:2,2] = np.NaN
print(df)
填充nan的方法
向前填充的内容为,与nan同列的上一个数为填充数
#用0填充nan
#df = df.fillna(0)
#print(df)
#向前填充
df = df.fillna(method = 'ffill')
df
向后填充的内容为,与nan同列的下一个数为填充数
#向后填充
df = df.fillna(method = 'bfill')
df
常用统计函数
#创建df
score = pd.DataFrame(np.random.randint(60,100,size = (4,3)),index = ['one','two','three','four'],columns = ['语文','数学','英语'])
score
函数的统计
print(score.describe())
print('---------------')
print(score.count())
print('---------------')
print(score.min(axis = 1))
print('---------------')
print(score.min())
print('---------------')
print(score.idxmin())
print('---------------')
print(score.idxmax())
print('---------------')
print(score.sum(axis = 1))
print(score.sum())
print('---------------')
#值得平均数
print(score.mean())
print('---------------')
#值得中位数
print(score.median())
print('---------------')
#跟据平均值计算平均绝对距离差
print(score.mad())
print('---------------')
|