万年历表,Python运用于数据剖析的教程!把握数据剖析的必备条件!,微信公众平台登录

最近,Analysis with Programming加入了Planet Python。作为该网站的榜首批特约博客,我这儿来共享一下怎么经过Python来开端数据分析。具体内容如下:

数据导入

导入本地的或许web端的CSV文件;

数据改换;

数据核算描绘;

假定查验

单样本t查验;

可视化;

创立自界说函数。

数据导入

这是很要害的一步,为了后续的分析咱们首要需求导入数据。一般来说,数据是CSV格局,就算不是,至少也能够转换成CSV格局。在Python中,咱们的操作如下:

import pandas as pd

# Reading data locally
df = pd.read_csv('/Users/al-ahmadgaidasaad/Documents/d.csv')

# Reading data from web
data_url = "https://raw.githubusercontent.com/alstat/Analysis-with-Programming/master/2014/Python/Numerical-Descriptions-of-the-Data/data.csv"
df = pd.read_csv(d镇雄天气预报ata_url)

为了读取本地CSV文件,咱们需求pandas这个数据分析库中的相应模块。其间的read_csv函数能够读取本地和web数据。

数据改换

Python学习群:683380553,有大牛答疑,有资源共享!是一个十分不错的沟通基地!欢迎喜爱Python的小伙伴!

既然在作业空间有了数据,接下来便是数据改换。核算学家和科学家们一般会在这一步移除分析中的非必要数据。咱们先看看数据:

# Head of the data
print df.head()

# OUTPUT
Abra Apayao Benguet Ifugao Kalinga
0 1243 2934 148 3300 10553
1 4158 9235 4287 8063 35257
2 1787 1922 1955 1074 4544
3 17152 14501 3536 19607 31687
4 1266 2385 2530 3315 8520

# Tail of the data
print df.tail()

# OUTPUT
Abra Apayao Benguet Ifugao Kalinga
74 2505 20878 3519 19737 16513
75 60303 40065 7062 19422 61808
76 6311 6756 3561 15910 23349
77 13345 38902 2583 11096 68663
78 2623 18264 3745 16787 16900

对R言语程序员来说,上述操作等价于经过print(head(df))来打印数据的前6行,以及经过print(tail(df))来打印数据万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录的后6行。当然Python中,默许打印是5行,而R则是6行。因而R的代码head(df, n = 10),在Python中便是df.head(n = 10),打印数据尾部也是相同道理。

在R言语中,数据列和行的姓名经过colnames和rownames来别离进行提取。在Python中,咱们则运用columns和index特点来提取,如下:

 # Extracting column names
print df.columns

# OUTPUT
Index([u'Abra', u'Apayao', u'Benguet', u'Ifugao', u'Kalinga'], dtype='object')

# Extracting row names or the index
print df.index

# OUTPUT
Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], dtype='int64')

数据转置运用T办法,

# Transpose data
print df.T

# OUTPUT
0 1 2 3 4 5 6 7 8 9
Abra 1243 4158 1787 17152 1266 5576 927 21540 1039 5424
Apayao 2934 9235 1922 14501 2385 7452 1099 17038 1382 10588
Benguet 148 4287 1955 3536 2530 771 2796 2463 2592 1064
Ifugao 3300 8063 1074 19607 3315 13134 5134 14226 6842 13828
Kalinga 10553 35257 4544 31687 8520 28252 3106 36238 4973 40140

... 69 70 71 72 73 74 75 76 77
Abra ... 12763 2470 59094 6209 13316 2505 60303 6311 13345
Apayao ... 37625 19532 35126 6335 38613 20878 40065 6756 38902
Benguet ... 2354 4045 5987 3530 2585 3519 7062 3561 2583
Ifugao ... 9838 17125 18940 15560 7746 19737 19422 15910 11096
Kalinga ... 65782 15279 52437 24385 66148 16513 61808 23349 68663

78
Abra 2623
Apayao 18264
B万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录enguet 3745
Ifugao 16787
Kalinga 16900

其他改换,例如排序便是用sort特点。现在咱们提取特定的某列数据。Python中,能够运用iloc或许ix特点。可是我更喜爱用ix,由于它更安稳一些。假定咱们需数据榜首列的前5行,咱们有:

print df.ix[:, 0].head()

#紫阳 OUTPUT
0 1243亚偷情
1 4158
2 1787
3 17152
4 1266
Name: Abra, dtype: int64

趁便提一下,Python的索引是从0开端而非1。为了取出从11到20行的前3列数据,咱们有:

print df.ix[10:20, 0:3]

# OUTPUT
Abra Apayao Be寿县nguet
10 981 1311 2560
11 27366 15093 3039
12 1100 1701 2382
13 7212 11001 1088
14 1048 1427 2847
15 25679 15661 2942
16 1055 2191 2119
17 5437 6461 734
18 1029 1183 2302
19 23710 12222 2598
20 崔成国1091 2343 2654

上述指令相当于df.ix[10:20, ['Abra', 'Apayao', 'Benguet']]。

为了放弃数据中的列,这儿是列1(Apayao)和列2(Benguet),咱们运用drop特点,如下:

print df.drop(df.columns[[1, 2]], axis = 1).head()

# OUTPUT
Abra Ifugao Kalinga
0 1243 3300缓慢咽炎的症状 10553
1 4158 8063 35257
2 1787 1074 4544
3 17152 19607 31687
4 1266 3315 8520

axis 参数通知函数究竟放弃列仍是行。假如axis等于0,那么就放弃行。

核算描绘

下一步便是经过describe特点,对数据的核算特性进行描绘:

print df.describe()

# OUTPUT
Abra Apayao Benguet Ifug基金净值查询ao Kalinga
count 79.000000 79.000000 79.000000 79.000000 79.000000
mean 12874.379747 16860.645570 3237.392405 12414.620253 30446.417722
std 16746.466945 15448.153794 1588.536429 5034.282019 22245.707692
min 927.000000 401.00耀一法师0000 148.000000 1074.000000 2346.000000
25% 1524.000000 3435.500000 2328.000000 8205.000000 8601.500000
50% 5790.000000 10588.000000 3202.000000 13044.000000 24494.000000
75% 13330.500000 33289.000000 3918.500000 16099.500000 52510.500000
max 60303.000000 546acdsee25.000000 8综弱水琴姬813.000000 21031.000000 68663.000000

假定查验

Python有一个很好的核算揣度包。那便是scipy里边的stats。ttest_1samp完成了单样本t查验。因而,假如咱们想查验数据Abra列的稻谷产值均值,通万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录过零假定,这儿咱们假定整体稻谷产值均值为15000,咱们有:

 from scipy import stats as ss

# Perform one sample t-test using 1500 as the true mean
print ss.ttest_1samp(a = df.ix[:, 'Abra'], popmean = 15000)

# OUTPUT
(-1.1281738488299586, 0.26270472069109496)

回来下述值组成的元祖:

t : 浮点或数组类型

t核算量

prob : 浮点或数组类型

two-tailed p-value 双侧概率值

经过上面的输出,看到p值是0.267远大于等于0.05,因而没有充沛的证听说均匀稻谷产值不是150000。将这个查验应用到一切的变量,相同假定均值为15000,咱们有:

print ss.ttest_1samp(a = 万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录df, popmean = 15000)

# OUTPUT
(array([ -1.12817385, 1.07053437, -65.81425599, -4.564575 , 6.17156198]),
array([ 2.62704721e-01, 2.87680340e-01, 4.15643528e-70,
1.83764399e-05, 2.周培公82461897e-08]))

榜首个数组是t核算量,第二个数组则是相应的p值。

可视化

Python中有许多可视化模块,最盛行的当属matpalotlib库。稍加提及,咱们也可选择bokeh和seaborn模块。之前的博文中,我现已说明晰matplotlib库中的盒须图模块功用。

Python运用于数据分析的教程!掌握数据分析的必备条件!

# Import the module for plotting中铁快运

import matplotlib.pyplot as plt

plt.show(df.plot(kind = 'box'))

现在,咱们能够用pandas模块中集成R的ggplot主题来美化图表。要运用ggplot,咱们只需求在求职简历模板上述代码万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录中多加一行,

import matplotlib.pyplot as plt

pd.options.display.mpl_style = 'default' # Sets the plotting display theme to ggplot2

df.plot(kind = 'box')

这样咱们就得到如下图表:

Python运用于数据分析的教程!掌握数据分析的必备条件!

比matplotlib.pyplot主题简练太多。可是在本博文中,我更乐意引进seaborn模块,该模块是一个核算数据可视化库。因而咱们有:

# Import the seaborn library
import seaborn as sns
# Do the boxplot
plt.show(sns.bYJJPPoxplot(df, widths = 0.5, color = "pastel"))

多性感的盒式图,持续往下看。

plt.show(sns.violinplot(df, widths = 0.5, color = "pastel"))

plt.show(sns.distplot(df.ix[:,2], rug = True, bins = 15))

with sns.axes_style("white"):

plt.show(sns.jointplot(df.ix[:,1], df.ix[:,2], kind = "kde"))

1

plt.show(sns.lmplot("Benguet", "Ifugao", df))

创立自界说函数

在Python中,咱们运用def函李haru在韩国差评数来完成一个自界说函数。例如,假如咱们要界说一个两数相加的函数,如下即可:

def add_2int(x, y):

return x + y

pri辞职报告范文nt add_2int(2, 2)

# OUTPUT

4

趁便说一下,Python中的缩进是很重要的。经过缩进来界说函数效果域,就像在R言语中运用大括号{…}相同。这有一个咱们之前博文的比如:

发生10个正态分布样本,其间u=3和o.

根据95%的置信度,核算 x_bar 和 x_bar2 ;

重复100次; 然后

核算出置信区间包括实在均值的百分比

Python中,程序如下:

import numpy as np
import scipy.stats as ss

def case(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
m = np.zeros((rep, 4))

for i in range(rep):
norm = np.random.normal(loc = mu, scale = sigma, size = n)
xbar = np.mean(norm)
low = xbar - ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
up = xbar + ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))

if (mu > low) & (mu < up):
rem = 1
else:
rem = 0

m[i, :] = [xbar, low, up, rem]

inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"

return {"Matrix": m, "Decision": desc}

上述代码读起来很简单,可是循环的时分就很慢了。下面针对上述代码进行了改善,这多亏了 Python专家。

import numpy as np
import scipy.stats as ss

def case2(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
scaled_crit = ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
norm = np.random.海城normal(loc = mu, scale = sigma, size = (rep, n))

xb张甲张乙张丙ar = norm.mean(万年历表,Python运用于数据分析的教程!掌握数据分析的必备条件!,微信大众渠道登录1)
low = xbar - scaled_crit
up = xbar + scaled_crit

rem = (mu > low) & (mu < up)
m = np.c_[xbar, low, up, rem]

inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m霸王花, "Decision": desc}

演示站
上一篇:供给侧改革,孩子下面的“香蕉皮”过长有损害吗?或许形成这3大损害你应警觉,阿基米德
下一篇:倒数,愿望之车/只知道GPR150?这才是轻量级仿赛的终极挑选 !!!雅马哈YZF-R3,核桃的功效与作用