1、pandas主要的两个数据结构:Series和DataFrame
Series
的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引。于是会自动创建一个0到N-1(N为长度)的整数型索引。
>>> import pandas as pd >>> import numpy as np >>> s = pd.Series([1,3,6,np.nan,44,1]) >>> print(s) 0 1.0 1 3.0 2 6.0 3 NaN 4 44.0 5 1.0 dtype: float64
DataFrame
是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。DataFrame
既有行索引也有列索引, 它可以被看做由Series
组成的大字典。
>>> dates = pd.date_range('20160101',periods=6) >>> df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d']) >>> print(df) a b c d 2016-01-01 1.306762 1.506943 0.682025 -0.054329 2016-01-02 2.626875 0.086998 0.307123 -0.498728 2016-01-03 -0.941697 0.206144 1.719719 1.084614 2016-01-04 -0.610912 -1.120358 -0.635338 1.145777 2016-01-05 -0.150501 0.768586 -0.158341 0.704960 2016-01-06 -0.759211 0.271800 0.768166 -0.293015
2、DataFrame的一些简单运用
>>> print(df['b']) 2016-01-01 1.506943 2016-01-02 0.086998 2016-01-03 0.206144 2016-01-04 -1.120358 2016-01-05 0.768586 2016-01-06 0.271800 Freq: D, Name: b, dtype: float64 >>> df1 = pd.DataFrame(np.arange(12).reshape((3,4)))#创建一组没有给定行标签和列标签的数据 df1: >>> print(df1) 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 >>> df2 = pd.DataFrame({'A' : 1., ... 'B' : pd.Timestamp('20130102'), ... 'C' : pd.Series(1,index=list(range(4)),dtype='float32'), ... 'D' : np.array([3] * 4,dtype='int32'), ... 'E' : pd.Categorical(["test","train","test","train"]), ... 'F' : 'foo'})#另一种生成df的方法 >>>print(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 >>> print(df2.dtypes)#查看数据中的类型 A float64 B datetime64[ns] C float32 D int32 E category F object dtype: object >>> print(df2.index) #查看对列的序号 Int64Index([0, 1, 2, 3], dtype='int64') >>> print(df2.columns)#查看每种数据的名称 Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object') >>> print(df2.values)#查看所有df2的值 [[1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo'] [1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo'] [1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'test' 'foo'] [1.0 Timestamp('2013-01-02 00:00:00') 1.0 3 'train' 'foo']] >>> df2.describe()#数据的总结 A C D count 4.0 4.0 4.0 mean 1.0 1.0 3.0 std 0.0 0.0 0.0 min 1.0 1.0 3.0 25% 1.0 1.0 3.0 50% 1.0 1.0 3.0 75% 1.0 1.0 3.0 max 1.0 1.0 3.0 >>> print(df2.T)#翻转数据,transpose 0 1 2 3 A 1 1 1 1 B 2013-01-02 00:00:00 2013-01-02 00:00:00 2013-01-02 00:00:00 2013-01-02 00:00:00 C 1 1 1 1 D 3 3 3 3 E test train test train F foo foo foo foo >>> print(df2.sort_index(axis=1, ascending=False))#对数据的index进行排序并输出 F E D C B A 0 foo test 3 1.0 2013-01-02 1.0 1 foo train 3 1.0 2013-01-02 1.0 2 foo test 3 1.0 2013-01-02 1.0 3 foo train 3 1.0 2013-01-02 1.0 >>> print(df2.sort_values(by='B'))#对数据值排序输出 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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步