Python数据科学库(二)

本文深入探讨Python数据科学中DataFrame和Series对象的创建、查看与选择数据的方法,包括通过序列和字典创建对象,查看数据的头尾、转置、排序,以及通过各种方式选择和设置数据。
摘要由CSDN通过智能技术生成

一、引入

import pandas as pd # 数据分析, 代码基于numpy
import numpy as np	# 处理数据, 代码基于ndarray

二、创建对象

(一)Series对象

Series对象是一行的数据类型,类似于一位数组

1、通过序列创建
(1)使用默认行名
# 默认以数字0开始作为键值使用np.nan表示不参与计算
s = pd.Series([1, 3, 5, np.nan, 6, 8])

# 结果
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64
(2)使用自定义行名
# index属性指定键(即每行名称)
s = pd.Series([1, 2, 3, 4], index=list("abcd"))
print(s)

# 结果
a    1
b    2
c    3
d    4
dtype: int64
2、通过字典创建
# 字典的键会自动变为行名
d = {
   "name":"Tom", "age":18}
s = pd.Series(d)

# 结果
name    Tom
age      18
dtype: object

(二)DataFrame对象

DataFrame对象为表格对象,可以理解为是二位数组

1、通过序列创建
dates = pd.date_range("20180112", periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
print(df)

# 结果
                   A         B         C         D
2018-01-12 -1.273980 -0.611487  0.694974  0.912239
2018-01-13 -1.161407 -0.054078 -0.085019  0.372066
2018-01-14 -1.639126  0.405671 -0.842639  0.273583
2018-01-15 -0.209314  0.569439  1.809941  0.245962
2018-01-16  0.643041 -0.783864  0.149103 -0.803913
2018-01-17  1.118176 -0.526984 -1.349010  0.155028
2、通过字典创建
(1)使用默认行名
# 列可以是多种, 但是数量要正确
d = {
   
    "A":1,  # 列可以是一个数, 会应用到整个列
    "B":pd.Timestamp("20180413"),  # 列可以是时间戳, 会应用到整个列
    "C":pd.Series(1, index=list(range(4)), dtype='float32'),  # 列可以是一个序列
    "D":np.array([3] * 4, dtype='int32'),  # 列可以是ndarray
    "F":"foo",  # 列可以是字符串, 会应用到整列
    "G":[1, 2, 3, 4]  # 列可以是列表
}
df2 = pd.DataFrame(d)
print(df2)

# 可以使用dtypes查看每列类型
print(df2.dtypes)

# 结果
   A          B    C  D    F  G
0  1 2018-04-13  1.0  3  foo  1
1  1 2018-04-13  1.0  3  foo  2
2  1 2018-04-13  1.0  3  foo  3
3  1 2018-04-13  1.0  3  foo  4
A             int64
B    datetime64[ns]
C           float32
D             int32
F            object
G             int64
dtype: object
(2)使用自定义行名
d = {
   "name":["Tom", "Bob", "Lili"], "age":[10, 20, 30]}
df = pd.DataFrame(d, index=["1", "2", "3"])
print(df)

# 结果
   name  age
1   Tom   10
2   Bob   20
3  Lili   30

三、查看数据

(一)查看头尾数据

d = {
   
    "name":["a", "b", "c", "d", "e", "f", "g"],
    "age":[10, 20, 30, 40, 50, 60, 70]
}
df = pd.DataFrame(d)

# 查看前几行, 默认值为5
print(df.head())

# 查看后几行, 默认值为5
print(df.tail(3))
# 结果
  name  age
0    a   10
1    b   20
2    c   30
3    d   40
4    e   50
  name  age
4   
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值