本文为原创,未经允许,不得转载。
1、pandas的数据结构
1)Series:是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。它可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象。
2)DataFrame:是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值的)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典。
Series 和 DataFrame 分别对应于numpy一维的序列和二维的表结构。
2. pandas的数据结构DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值的)。
下面具体练习:
import pandas as pd
import numpy as np
#Series 对象包含两个主要的属性:index 和 values
w =pd.Series(data=[1,3,5,7],index = ['a','b','c','d'])
PRint (w)a 1b 3
c 5
d 7
dtype: int64
w.index
Index(['a', 'b', 'c', 'd'], dtype='object')w.values
array([1, 3, 5, 7], dtype=int64)s = pd.Series([1,3,5,np.nan,6,8])
print(s)
0 1.01 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
##非常常用的函数date_range,尤其是在处理时间序列数据时,这个函数的作用就是产生一个##DatetimeIndex,就是时间序列数据的索引
dates = pd.date_range('20130101', periods=6)
# periods:表示你要从这个函数产生多少个日期索引值
dates
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'],
dtype='datetime64[ns]', freq='D')
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
print(df)
A | B | C | D | |
---|---|---|---|---|
2013-01-01 | -0.747037 | -0.665933 | 0.506150 | -0.047263 |
2013-01-02 | -0.501075 | 0.843647 | 0.506725 | -0.499766 |
2013-01-03 | -1.171445 | 0.816434 | 0.761552 | -0.908022 |
2013-01-04 | -0.226046 | -0.472765 | 3.075716 | 1.063544 |
2013-01-05 | 0.108281 | -0.122184 | -0.011140 | -1.287596 |
2013-01-06 | -1.499848 | -0.430267 | 2.074067 | -1.067155 |
df1 = pd.DataFrame(np.random.randn(6,4), index=['a','b','c','d','e','f'], columns=list('ABCD'))
df1
Out[14]:
A | B | C | D | |
---|---|---|---|---|
a | -1.636900 | 0.966756 | 0.742416 | -1.163262 |
b | 0.035832 | -0.960578 | 0.253173 | 0.165655 |
c | -1.032465 | 0.270160 | 1.445454 | 0.598161 |
d | 2.112374 | -0.890787 | -0.308986 | -1.187998 |
e | -1.834906 | -1.939869 | 0.924308 | -1.150917 |
f | 0.148556 | 2.410571 | 0.083520 | -2.209039 |
df.head()
Out[9]:
A | B | C | D | |
---|---|---|---|---|
2013-01-01 | -0.542835 | 2.640071 | 1.244249 | 1.613720 |
2013-01-02 | 0.270210 | 0.238108 | -1.111091 | -0.700783 |
2013-01-03 | -0.681126 | -1.618220 | -0.221547 | 0.379695 |
2013-01-04 | -0.490011 | -0.301552 | 1.951446 | -0.074140 |
2013-01-05 | -0.549930 | 0.558058 | -0.015088 | 0.092985 |
df.tail() #默认是5行
Out[11]:
A | B | C | D | |
---|---|---|---|---|
2013-01-02 | 0.270210 | 0.238108 | -1.111091 | -0.700783 |
2013-01-03 | -0.681126 | -1.618220 | -0.221547 | 0.379695 |
2013-01-04 | -0.490011 | -0.301552 | 1.951446 | -0.074140 |
2013-01-05 | -0.549930 | 0.558058 | -0.015088 | 0.092985 |
2013-01-06 | 0.761844 | -0.938138 | 0.065372 | -0.677193 |
df.tail(3) #查看后3行
Out[12]:
A | B | C | D | |
---|---|---|---|---|
2013-01-04 | -0.490011 | -0.301552 | 1.951446 | -0.074140 |
2013-01-05 | -0.549930 | 0.558058 | -0.015088 | 0.092985 |
2013-01-06 | 0.761844 | -0.938138 | 0.065372 | -0.677193 |
df.columns#df的列名
Out[13]:
Index(['A', 'B', 'C', 'D'], dtype='object')df.describe()#统计性描述分析
Out[14]:
A | B | C | D | |
---|---|---|---|---|
count | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
mean | -0.205308 | 0.096388 | 0.318890 | 0.105714 |
std | 0.583378 | 1.474587 | 1.098568 | 0.853820 |
min | -0.681126 | -1.618220 | -1.111091 | -0.700783 |
25% | -0.548156 | -0.778992 | -0.169932 | -0.526430 |
50% | -0.516423 | -0.031722 | 0.025142 | 0.009422 |
75% | 0.080155 | 0.478071 | 0.949530 | 0.308018 |
max | 0.761844 | 2.640071 | 1.951446 | 1.613720 |
df.T#转置
2013-01-01 00:00:00 | 2013-01-02 00:00:00 | 2013-01-03 00:00:00 | 2013-01-04 00:00:00 | 2013-01-05 00:00:00 | 2013-01-06 00:00:00 | |
---|---|---|---|---|---|---|
A | -0.542835 | 0.270210 | -0.681126 | -0.490011 | -0.549930 | 0.761844 |
B | 2.640071 | 0.238108 | -1.618220 | -0.301552 | 0.558058 | -0.938138 |
C | 1.244249 | -1.111091 | -0.221547 | 1.951446 | -0.015088 | 0.065372 |
D | 1.613720 | -0.700783 | 0.379695 | -0.074140 | 0.092985 | -0.677193 |
df.sort_index(axis=1, ascending=False) #以列降序排列
D | C | B | A | |
---|---|---|---|---|
2013-01-01 | 1.613720 | 1.244249 | 2.640071 | -0.542835 |
2013-01-02 | -0.700783 | -1.111091 | 0.238108 | 0.270210 |
2013-01-03 | 0.379695 | -0.221547 | -1.618220 | -0.681126 |
2013-01-04 | -0.074140 | 1.951446 | -0.301552 | -0.490011 |
2013-01-05 | 0.092985 | -0.015088 | 0.558058 | -0.549930 |
2013-01-06 | -0.677193 | 0.065372 | -0.938138 | 0.761844 |
df.sort_values(by='B') ##按B列的值来排序,默认是升序
A | B | C | D | |
---|---|---|---|---|
2013-01-03 | -0.681126 | -1.618220 | -0.221547 | 0.379695 |
2013-01-06 | 0.761844 | -0.938138 | 0.065372 | -0.677193 |
2013-01-04 | -0.490011 | -0.301552 | 1.951446 | -0.074140 |
2013-01-02 | 0.270210 | 0.238108 | -1.111091 | -0.700783 |
2013-01-05 | -0.549930 | 0.558058 | -0.015088 | 0.092985 |
2013-01-01 | -0.542835 | 2.640071 | 1.244249 | 1.613720 |
后续会持续更新,欢迎大家进群一起学习,一起沟通。
数据分析群
新闻热点
疑难解答