前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas系列1_对象创建及查看数据

pandas系列1_对象创建及查看数据

作者头像
皮大大
发布2021-03-02 14:33:20
3860
发布2021-03-02 14:33:20
举报
文章被收录于专栏:机器学习/数据可视化

本文重点知识:

  • 创建带有日期的索引:dates = pd.date_range('20190924', periods=6)
  • head()、tail()
  • 按轴排序:索引排序sort_index,默认是ascending=True升序
    • axis=0:行索引,可以用index
    • axis=1:列索引,可以用columns
  • 按值排序:df.sort_values(by='columns'),默认升序

创建数据

代码语言:javascript
复制
import numpy as np
import pandas as pd
代码语言:javascript
复制
s = pd.Series([1, 3, 5, np.nan, 6, 89])
s
代码语言:javascript
复制
0     1.0
1     3.0
2     5.0
3     NaN
4     6.0
5    89.0
dtype: float64
代码语言:javascript
复制
dates = pd.date_range('20190924', periods=6)
dates
代码语言:javascript
复制
DatetimeIndex(['2019-09-24', '2019-09-25', '2019-09-26', '2019-09-27',
               '2019-09-28', '2019-09-29'],
              dtype='datetime64[ns]', freq='D')
代码语言:javascript
复制
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list("ABCD"))
df

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
# 同时创建多个不同的列
df2 = pd.DataFrame({'A': 1.,   #  某列的值相同
                    'B': pd.Timestamp('20130102'),  # 时间戳的创建
                    'C': pd.Series(1, index=list(range(4)), dtype='float32'),  # 某列值可以是S型数据
                    'D': np.array([3] * 4, dtype='int32'),  # 使用numpy数组
                    'E': pd.Categorical(["test", "train", "test", "train"]), # 不同的类
                    'F': 'foo'})  # 使用布尔值

df2

A

B

C

D

E

F

0

1.0

2013-01-02

1.0

3

test

foo

1

1.0

2013-01-02

1.0

3

train

foo

2

1.0

2013-01-02

1.0

3

test

foo

3

1.0

2013-01-02

1.0

3

train

foo

代码语言:javascript
复制
df2.dtypes
代码语言:javascript
复制
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

查看数据

查看数据的相关信息

  • 头、尾几行数据
  • index、columns
  • describe ,T
代码语言:javascript
复制
# 前几行数据,默认是5行
df.head(3)

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

代码语言:javascript
复制
# 查看末几行,默认是5行
df.tail(2)

A

B

C

D

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
# 查看数据的行索引
df.index
代码语言:javascript
复制
DatetimeIndex(['2019-09-24', '2019-09-25', '2019-09-26', '2019-09-27',
               '2019-09-28', '2019-09-29'],
              dtype='datetime64[ns]', freq='D')
代码语言:javascript
复制
# 查看数据的列属性
df.columns
代码语言:javascript
复制
Index(['A', 'B', 'C', 'D'], dtype='object')
代码语言:javascript
复制
df.to_numpy()
代码语言:javascript
复制
array([[ 0.50000505,  0.16657823, -0.75851253, -0.67917279],
       [ 0.09020909,  0.11790626, -0.40218323,  2.26118249],
       [-0.80905211, -0.17314443,  0.32491161, -1.88510066],
       [ 0.31037417, -1.50208882,  1.52440064,  0.26995285],
       [-0.8464884 , -0.23587797,  1.39889574, -0.22957318],
       [ 0.9758533 , -0.99839501, -0.51448041, -0.88270375]])
代码语言:javascript
复制
df.describe()

A

B

C

D

count

6.000000

6.000000

6.000000

6.000000

mean

0.036817

-0.437504

0.262172

-0.190903

std

0.730717

0.668113

0.997562

1.400993

min

-0.846488

-1.502089

-0.758513

-1.885101

25%

-0.584237

-0.807766

-0.486406

-0.831821

50%

0.200292

-0.204511

-0.038636

-0.454373

75%

0.452597

0.045144

1.130400

0.145071

max

0.975853

0.166578

1.524401

2.261182

代码语言:javascript
复制
df.T

2019-09-24 00:00:00

2019-09-25 00:00:00

2019-09-26 00:00:00

2019-09-27 00:00:00

2019-09-28 00:00:00

2019-09-29 00:00:00

A

0.500005

0.090209

-0.809052

0.310374

-0.846488

0.975853

B

0.166578

0.117906

-0.173144

-1.502089

-0.235878

-0.998395

C

-0.758513

-0.402183

0.324912

1.524401

1.398896

-0.514480

D

-0.679173

2.261182

-1.885101

0.269953

-0.229573

-0.882704

代码语言:javascript
复制
# sort_index
# 索引排序`sort_index`,默认是`ascending=True`升序
# axis=0:行索引,可以用`index`
# axis=1:列索引,可以用`columns`
df.sort_index(axis=1)

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
# 按照行索引进行降序
df.sort_index(axis=0, ascending=False)

A

B

C

D

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

代码语言:javascript
复制
# 按照某个属性进行排序
# 按照B属性的升序排列
df.sort_values(by="B")

A

B

C

D

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

代码语言:javascript
复制
df.sort_values(by=["B","C"])

A

B

C

D

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

选择数据

查看指定的行列数据
代码语言:javascript
复制
# 指定列属性查看数据
df[["B","C"]]

B

C

2019-09-24

0.166578

-0.758513

2019-09-25

0.117906

-0.402183

2019-09-26

-0.173144

0.324912

2019-09-27

-1.502089

1.524401

2019-09-28

-0.235878

1.398896

2019-09-29

-0.998395

-0.514480

代码语言:javascript
复制
# 指定行标签查看指定的行数据
df[1:3]

A

B

C

D

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

代码语言:javascript
复制
df["20190924":"20190927"]

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-27

0.310374

-1.502089

1.524401

0.269953

loc

根据标签(不是自带的数字索引)查看数据

代码语言:javascript
复制
df.loc[dates[0]]
代码语言:javascript
复制
A    0.500005
B    0.166578
C   -0.758513
D   -0.679173
Name: 2019-09-24 00:00:00, dtype: float64
代码语言:javascript
复制
dates[0]
代码语言:javascript
复制
Timestamp('2019-09-24 00:00:00', freq='D')
代码语言:javascript
复制
# 选择行和列
df.loc[:, ["A","B"]]   # 选择所有行和AB两个列

A

B

2019-09-24

0.500005

0.166578

2019-09-25

0.090209

0.117906

2019-09-26

-0.809052

-0.173144

2019-09-27

0.310374

-1.502089

2019-09-28

-0.846488

-0.235878

2019-09-29

0.975853

-0.998395

代码语言:javascript
复制
# 索引通过标签来实现
df.loc['20190924':'20190927', ['A', 'B']]

A

B

2019-09-24

0.500005

0.166578

2019-09-25

0.090209

0.117906

2019-09-26

-0.809052

-0.173144

2019-09-27

0.310374

-1.502089

代码语言:javascript
复制
# 指定的行或者列可以是切片形式
df.loc['20190924':'20190927', 'A':'B']

A

B

2019-09-24

0.500005

0.166578

2019-09-25

0.090209

0.117906

2019-09-26

-0.809052

-0.173144

2019-09-27

0.310374

-1.502089

iloc数字索引

记忆放法:iloc记为intloc,int为整型,表示通过数字来进行索引

代码语言:javascript
复制
df

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
df.iloc[1:3]

A

B

C

D

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

代码语言:javascript
复制
df.iloc[1:3, 0:2]  # 切片形式,连续性

A

B

2019-09-25

0.090209

0.117906

2019-09-26

-0.809052

-0.173144

代码语言:javascript
复制
df.iloc[[1, 2, 4], [0, 2]]  # 行索引是离散的值

A

C

2019-09-25

0.090209

-0.402183

2019-09-26

-0.809052

0.324912

2019-09-28

-0.846488

1.398896

代码语言:javascript
复制
df.iloc[:, 1:3]

B

C

2019-09-24

0.166578

-0.758513

2019-09-25

0.117906

-0.402183

2019-09-26

-0.173144

0.324912

2019-09-27

-1.502089

1.524401

2019-09-28

-0.235878

1.398896

2019-09-29

-0.998395

-0.514480

获取具体位置的元素
代码语言:javascript
复制
df.iloc[1,2]
代码语言:javascript
复制
-0.4021832300071616
代码语言:javascript
复制
df.iat[1,2]    # 等同上面
代码语言:javascript
复制
-0.4021832300071616
布尔索引
代码语言:javascript
复制
df

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-26

-0.809052

-0.173144

0.324912

-1.885101

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-28

-0.846488

-0.235878

1.398896

-0.229573

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
df[df.A > 0]  # 将属性A中大于0的行全部选择出出来

A

B

C

D

2019-09-24

0.500005

0.166578

-0.758513

-0.679173

2019-09-25

0.090209

0.117906

-0.402183

2.261182

2019-09-27

0.310374

-1.502089

1.524401

0.269953

2019-09-29

0.975853

-0.998395

-0.514480

-0.882704

代码语言:javascript
复制
df[df > 0]

A

B

C

D

2019-09-24

0.500005

0.166578

NaN

NaN

2019-09-25

0.090209

0.117906

NaN

2.261182

2019-09-26

NaN

NaN

0.324912

NaN

2019-09-27

0.310374

NaN

1.524401

0.269953

2019-09-28

NaN

NaN

1.398896

NaN

2019-09-29

0.975853

NaN

NaN

NaN

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-9-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建数据
  • 查看数据
  • 选择数据
    • 查看指定的行列数据
      • loc
        • iloc数字索引
          • 获取具体位置的元素
            • 布尔索引
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档