创建对象

  • 创建 Series
s = pd.Series([1, 2, 3, 6, np.nan, 6, 8, 10])
s
0     1.0
1     2.0
2     3.0
3     6.0
4     NaN
5     6.0
6     8.0
7    10.0
dtype: float64
  • 创建 DataFrame

利用 date_range 创建时间索引,并用 numpy 创建一个随机数组,创建一个 DataFrame

dates = pd.date_range("20230101", periods=10)
df = pd.DataFrame(np.random.randn(10,4), index=dates, columns=['A','B','C','D'])
df
                   A         B         C         D
2023-01-01 -0.153925 -0.723386  0.392443 -0.745368
2023-01-02 -0.257983  1.627218 -0.362061  0.891725
2023-01-03 -1.199357  1.456383  0.264737 -1.653872
2023-01-04  1.619186 -0.114296  0.391061  0.762666
2023-01-05 -0.388519 -0.347260  0.368026  0.856233
2023-01-06 -0.214157  0.090970  1.585380 -2.145105
2023-01-07 -0.347972 -0.421805  0.456455 -0.647794
2023-01-08 -1.111556  0.644303 -1.621916 -0.713999
2023-01-09 -1.934481 -0.299281  0.664085 -0.719971
2023-01-10 -1.080188 -1.709461 -0.215850 -0.170179

利用字典数据创建 DataFrame

df2 = pd.DataFrame(
    {
        "A": 1.0,
        "B": pd.Timestamp("20230101"),
        "C": pd.Series(1, index=list(range(5)), dtype='float32'),
        "D": np.array([5] * 5, dtype='int32'),
        "E": pd.Categorical(["test", "train", "test", "train", "val"]),
        "F": "any"
    }
)
df2

查看数据

  • DataFrame.head(), DataFrame.tail() 查看头部数据和尾部数据
  • 如果没有写显示几个,默认为 5 个
                   A         B         C         D
2023-01-01 -0.153925 -0.723386  0.392443 -0.745368
2023-01-02 -0.257983  1.627218 -0.362061  0.891725
2023-01-03 -1.199357  1.456383  0.264737 -1.653872
2023-01-04  1.619186 -0.114296  0.391061  0.762666
2023-01-05 -0.388519 -0.347260  0.368026  0.856233
  • 显示索引和列名
DatetimeIndex(['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04',
               '2023-01-05', '2023-01-06', '2023-01-07', '2023-01-08',
               '2023-01-09', '2023-01-10'],
              dtype='datetime64[ns]', freq='D')
  • to_numpy()

DataFrame.to_numpy() 给出底层数据的 Numpy 表示,当 DataFrame 的列具有不同的数据类型时,这可能是一个比较耗时的操作,主要是因为 Pandas 和 Numpy 之间的根本区别, Numpy 对整个数据有一个 dtype, 而 Pandas 的 DataFrame 每列有一个 dtype, 当调用 DataFrame.to_numpy() 时,Pandas 会找到能保存 DataFrame 中所有 dtype 的 Numpy dtype, 最终形成一个 object, 这需要将每个值强制转换为 Python 对象。

对于 df, 所有浮点值的 DataFrame 和 DataFrame.to_numpy() 是快速的,不需要复制数据。

array([[-0.153925  , -0.7233858 ,  0.39244256, -0.74536788],
       [-0.2579828 ,  1.62721786, -0.3620608 ,  0.89172504],
       [-1.19935721,  1.4563827 ,  0.2647369 , -1.65387242],
       [ 1.61918622, -0.11429613,  0.39106094,  0.76266589],
       [-0.3885188 , -0.34726003,  0.36802601,  0.85623267],
       [-0.2141565 ,  0.09097039,  1.58537994, -2.1451055 ],
       [-0.34797235, -0.42180524,  0.45645503, -0.64779373],
       [-1.1115556 ,  0.6443028 , -1.62191554, -0.713999  ],
       [-1.93448125, -0.29928057,  0.66408539, -0.719971  ],
       [-1.08018766, -1.70946083, -0.21584991, -0.1701788 ]])

DataFrame.to_numpy() 没有索引和列标签。

Lnton 羚通是专注于音视频算法、算力、云平台的高科技人工智能企业。 公司基于视频分析技术、视频智能传输技术、远程监测技术以及智能语音融合技术等, 拥有多款可支持 ONVIF、RTSP、GB/T28181 等多协议、多路数的音视频智能分析服务器 / 云平台。

Lnton羚通视频算法算力云平台如何快速了解pandas(上)_云平台