python数据分析 python入门 编程语言

一.数据导入和导出
(一)读取csv文件
1.本地读取
import pandas as pd
df = pd.read_csv(‘E:\tips.csv’)
2.网络读取

import pandas as pd
data_url = “https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv” #填写url读取
df = pd.read_csv(data_url)
(二)读取Mysql数据

import pandas as pd
import MySQLdb
mysql_cn= MySQLdb.connect(host=‘localhost’, port=3306,user=‘myusername’, passwd=‘mypassword’, db=‘mydb’)
df = pd.read_sql(‘select * from test;’, con=mysql_cn)
mysql_cn.close()
(三)读取excel文件

df = pd.read_excel(‘E:\tips.xls’)
(四)数据导出到csv文件

df.to_csv(‘E:\demo.csv’, encoding=‘utf-8’, index=False)
万事开头难,给要学习python的同学开个好头,初入编程行业不清楚自己是否真的可以或者担心自己学不会。
那么在学习之前咱们得有一个明确的学习目标,详细的学习线路,做到不盲目学习,少走弯路,在这里给大家分享一些python入门的学习教程和方法,以及目前python最新的学习线路,欢迎大家加入python学习交流qq群:515267276


二.提取和筛选需要的数据
(一)提取和查看相应数据

print df.head() #打印数据前五行
print df.tail() #打印数据后5行
print df.columns #打印列名
print df.index #打印行名
print df.ix[10:20, 0:3] #打印10~20行前三列数据
df.iloc[[1,3,5],[2,4]]#提取不连续行和列的数据,这个例子提取的是第1,3,5行,第2,4列的数据
df.iat[3,2]#专门提取某一个数据,这个例子提取的是第三行,第二列数据(默认从0开始算)
print df.drop(df.columns[1, 2], axis = 1) #舍弃数据前两列
print df.drop(df.columns[[1, 2]], axis = 0) #舍弃数据前两行
print df.shape #打印维度
df.iloc[3] #选取第3行
df.iloc[2:4] #选取第2到第3行
df.iloc[0,1] #选取第0行1列的元素

(二)筛选出需要的数据

df[df.tip>8] #筛选出小费大于$8的数据
df[(df.tip>7)|(df.total_bill>50)] #筛选出小费大于$7或总账单大于$50的数据
df[(df.tip>7)&(df.total_bill>50)]#筛选出小费大于$7且总账单大于$50的数据
df[[‘day’,‘time’]][(df.tip>7)|(df.total_bill>50)] #符合条件的time 和 day

三.统计描述
print df.describe() #描述性统计

四.数据处理
(一)数据转置

print df.T
(二)数据排序

df.sort_values(by=‘tip’) #按tip列升序排序
(三)缺失值处理

1.填充缺失值

print frame[‘tz’].fillna(12345) #以数字代替缺失值
print frame[‘tz’].fillna(method=‘pad’) #用前一个数据代替缺失值
print frame[‘tz’].fillna(method=‘bfill’) #用后一个数据代替缺失值
2.删除缺失值

print frame[‘tz’].dropna(axis=0) #删除缺失行
print frame[‘tz’].dropna(axis=1) #删除缺失列
3.插值法填补缺失值

print czf_data.interpolate()

(四)数据分组

group = df.groupby(‘day’)

(五)值替换

print Series.replace(0,10000000000000) #数值替换,例如将0换成10000000000000
print Series.replace([0,1,2,3,4,5],[11111,222222,3333333,44444,55555,666666])#列和列的替换同理

五.统计分析
(一)t检验

1.独立样本t检验

import pandas as pd
from scipy.stats import ttest_ind
IS_t_test = pd.read_excel(‘E:\IS_t_test.xlsx’)
Group1 = IS_t_test[IS_t_test[‘group’]==1][‘data’]
Group2 = IS_t_test[IS_t_test[‘group’]==2][‘data’]
print ttest_ind(Group1,Group2)
#输出
(-4.7515451390104353, 0.0014423819408438474)
输出结果的第一个元素为t值,第二个元素为p-value
如果P小于0.05,依然说明两组数据有显著性差异
ttest_ind默认两组数据方差齐性

检验两组数据的方差齐性:
print levene(group1,group2)
若检验结果为p>0.05,认为两组数据方差齐性,否则用print ttest_ind(Group1,Group2,equal_var=False)
2.配对样本t检验

import pandas as pd
from scipy.stats import ttest_rel
IS_t_test = pd.read_excel(‘E:\IS_t_test.xlsx’)
Group1 = IS_t_test[IS_t_test[‘group’]==1][‘data’]
Group2 = IS_t_test[IS_t_test[‘group’]==2][‘data’]
print ttest_rel(Group1,Group2)

#输出
(-5.6873679190073361, 0.00471961872448184)
若p>0.05则数据没有差异
(二)方差分析

1.单因素方差分析

import pandas as pd
from scipy import stats
IS_t_test = pd.read_excel(‘E:\IS_t_test.xlsx’)
Group1 = IS_t_test[IS_t_test[‘group’]==1][‘data’]
Group2 = IS_t_test[IS_t_test[‘group’]==2][‘data’]
w,p = stats.levene(*args)
#levene方差齐性检验。如果p<0.05,则方差不齐
print w,p
#进行方差分析
f,p = stats.f_oneway(*args)

2.多因素方差分析

#多因素方差分析
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
formula = ‘weight~C(id)+C(nutrient)+C(id):C(nutrient)’
anova_results = anova_lm(ols(formula,MANOVA).fit())
print anova_results

猜你喜欢

转载自blog.csdn.net/cbyacq798/article/details/82951467