pandas入门(二):pandas中DataFrame的用法
DataFrame 是pandas 中一个重要的数据结构,相当于表格数据模型,他能像excel 那样方便的处理数据,能快速的生成统计数据和数据图形。在这里,看看 DataFrame 那些数据分析的功能。DataFrame 数据统计功能模拟一组数据,用来做下面的实验:import pandas as pdimport numpy as npdf = pd.DataFrame(np.random.ra
DataFrame
是pandas
中一个重要的数据结构,相当于表格数据模型,他能像excel
那样方便的处理数据,能快速的生成统计数据和数据图形。在这里,看看 DataFrame
那些数据分析的功能。
DataFrame 数据统计功能
模拟一组数据,用来做下面的实验:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(365,4), index=pd.date_range('01/01/2018',periods=365),columns=list('ABCD'))
print df
随机的创建一个DataFrame
,用来代表2108年中四个物品A,B,C,D的价格变化情况。
DataFrame
在绘制图表上也非常的简单:
import matplotlib.pyplot as plt
df = df.cumsum()
df.plot()
plt.show()
在上面的基础数据下,使用cumsum
对数据进行汇总,得到如下的趋势图,是不是很简单,不管是图表的形式表达还是配色可读性都非常的强。
基本的统计数据汇总:
print df.describe()
常见的统计数据如下:
A B C D
count 365.000000 365.000000 365.000000 365.000000
mean 0.017121 -0.084041 0.091562 -0.062840
std 1.031611 0.989987 0.963780 1.004732
min -2.974170 -3.160127 -2.965152 -3.484637
25% -0.713081 -0.752224 -0.521968 -0.716572
50% 0.028601 -0.075576 0.108083 -0.011894
75% 0.727676 0.540112 0.698640 0.615861
max 2.721788 2.970540 2.532931 2.620623
对数据进行相应的排序 sort_values ,获取A组数据中,涨幅最大的前十位的名额,同样的可以通过参数的配置,获取到相应的其他数据:
print df.sort_values(["A"],ascending=False).head(10)
数据如下:
Unnamed: 0 A B C D
66 2018-03-08 2.721788 1.158173 1.021082 -0.178776
270 2018-09-28 2.631832 2.846485 1.274637 0.640863
173 2018-06-23 2.589301 -0.551382 -0.508514 -0.554362
130 2018-05-11 2.498213 -0.328492 -1.323810 0.520516
116 2018-04-27 2.466552 -1.087436 -0.695060 0.303700
71 2018-03-13 2.404274 1.204663 0.078819 1.313544
58 2018-02-28 2.358710 -0.396677 0.709050 -0.621562
198 2018-07-18 2.298132 1.126279 0.149108 -0.105187
222 2018-08-11 2.168493 -2.108563 0.818318 0.275239
362 2018-12-29 2.163639 0.962808 0.447942 0.167923
loc
除了对数据能够进行索引,还能够对数据进行筛选,这相当于SQL
语句中的where
,如下对数据中过滤出A
栏和B
栏中数据为正数的条目,并只显示’A’,‘B’,'C’栏目中的数据:
print df.loc[(df['B'] > 0) & (df['C'] > 0),['Unnamed: 0','B','C']].head(10)
数据如下:
Unnamed: 0 B C
4 2018-01-05 1.466975 1.533502
8 2018-01-09 0.572125 1.254267
11 2018-01-12 0.546428 0.780099
23 2018-01-24 0.302782 0.841574
26 2018-01-27 0.038191 0.640075
28 2018-01-29 2.918737 0.075505
36 2018-02-06 0.176864 1.936910
37 2018-02-07 0.131508 1.256736
51 2018-02-21 0.260943 0.961528
62 2018-03-04 0.016350 0.576649
同样的,过滤完数据以后,可以对数据进行同样的一些统计的操作,对B项求平均值
print df.loc[(df['B'] > 0) & (df['C'] > 0)].B.mean()
结果如下:
0.71832419517
常用的操作还有,最大值max()
和最小值min()
,计数count()
,求和sum()
更多推荐
所有评论(0)