![7a0aa51f7aaf621194927f7ce17806b8.png](https://i-blog.csdnimg.cn/blog_migrate/7b28972a14650a4f334597a3d12a90c4.jpeg)
了解数据
#构建数据
import pandas as pd
import numpy as np
#构建数据
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
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'})
#查询数据字段格式
df2.dtypes
#数据显示前5行与显示最后3行
df.head()
df.tail(3)
#显示行列索引
df.index
df.columns
#显示数据的快速统计摘要
df.describe()
df.descirbe方法只能针对序列或数据框,一维数组是没有这个方法的。可以自定义一个函数,将这些统计描述指标全部汇总到一起:
def stats(x):
return pd.Series([x.count(),x.min(),x.idxmin(),x.quantile(.25),x.median(),x.quantile(.75),
x.mean(),x.max(),x.idxmax(),x.mad(),x.var(),x.std(),x.skew(),x.kurt()],
index = ['Count','Min','Whicn_Min','Q1','Median','Q3','Mean','Max',
'Which_Max','Mad','Var','Std','Skew','Kurt'])
print(stats(d1))
#行列转置
df.T
#数据按轴排序
df.sort_index(axis=1, ascending=False)
#按值排序
df.sort_values(by='B')
选择数据
#选取数据的某列产生一个Series
df['A']
#对数据进行切片
df[0:3]
#通过标签获取数据.loc()
#要使用标签获取横截面,即选取行数据
df.loc[dates[0]]
#通过标签在多轴上选择,即选取列数据
df.loc[:, ['A', 'B']]
#显示标签切片,两个端点都包括在内,即选取制定行列数据
df.loc['20130102':'20130104', ['A', 'B']]
#减少返回对象的尺寸,即选取部分行列数据
df.loc['20130102', ['A', 'B']]
#为了获得标量值,即选取指定数据
df.loc[dates[0], 'A']
#为了快速访问标量(相当于先前的方法)
df.at[dates[0], 'A']
通过位置获取数据.iloc()
#通过传递的整数的位置进行选择
df.iloc[3]
#通过整数切片,其行为类似于numpy / python
d