创建对象
- 创建
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 等多协议、多路数的音视频智能分析服务器 / 云平台。