利用Python进行基本的数据分析

利用Python进行基本的数据分析

##采用open函数读取csv文件,但此种方法局限性很多
#with open ("C:/Users/Desktop/test_file.csv","r") as file:
    #for line in file:
        #print(line)


###采用open函数读取xlsx文件,局限性多
import xlrd
#file = xlrd.open_workbook("C:/Users/Desktop/test_file.xlsx")
#table = file.sheet_by_index(0)  ##按照索引读取列表
#for i in range(table.nrows):    ##读取每行并打印
    #print(table.row_values(i))

###
import pandas as pd
df = pd.read_csv("C:/Users/Desktop/test_file.csv",header=0)
print(df.head())

data = pd.read_excel("C:/Users/Desktop/test_file.xlsx",sheet_name='test_file')
print(data.head(10))                                 ## 查看前10print(data.tail())                                   ## 查看后5print(data.describe())                               ## 基本统计描述,如均值、方差、四分位数等等
print(data.count())                                  ## 各类指标计数

###判断是否有缺失值
print(data.isnull())
print(data.notnull())

####删除含有缺失值的列和行,0为行,1为列
data.dropna(axis=0)
data.dropna(axis=1)
###dim是返回数据框的维度,是一个值
print(data.ndim)
####shape返回数据框的行列数,0为行,1为列;len作用同shape[0]
print(data.shape[1] , data.shape[0] , len(data))


########填补缺失值
df.fillna(method='pad')                ##前向填补
df.fillna(method = 'bfill')            ##后向填补
df.interpolate(method = 'linear')      ##插值填补,默认为线性填补
###interpolate()方法还有 linear, time, index, values, nearest, zero, slinear,
###quadratic, cubic, barycentric, krogh, polynomial, spline, piecewise_polynomial,
# from_derivatives, pchip, akima 等插值方法可供选择。
##如果你的数据增长速率越来越快,可以选择 method='quadratic' 二次插值。
##如果数据集呈现出累计分布的样子,推荐选择 method='pchip'。
##如果需要填补缺省值,以平滑绘图为目标,推荐选择 method='akima'。
##method='akima',method='barycentric' 和 method='pchip' 需要 Scipy 才能使用。


demo = pd.read_csv('C:/Users/Desktop/one_hot_demo.csv' , header=0)
print(demo.head())
print(demo.shape[0] , demo.shape[1] , demo.dtypes)  ##dtypes用于显示数据框中各变量的数据类型

###将名义变量转变为二维哑变量,即独热编码
onehot = pd.get_dummies(demo[['status' , 'color']])
print(onehot)

###重复值处理
pd.DataFrame.duplicated(demo).head(10)      ##查看重复的行
pd.DataFrame.drop_duplicates(demo)            ##去除重复行

###异常值观测和处理
from matplotlib import pyplot as plt
data1 = pd.read_csv('C:/Users/Desktop/test_file.csv',header=0)
print(data1.head(5))
total_population = data["Total Population"]
p = plt.boxplot(total_population)
##data1.boxplot()
plt.show()                                  ##异常值观测
outlier = p['fliers'][0].get_ydata()        ##获取异常值数据,fliers为异常值的标签
print(outlier)

## 数据库读取
## sudo apt-get install python-dev libmysqlclient-dev
## sudo apt-get install python3-mysqldb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值