创建DateFrame二维,Series容器
import pandas as pd
t1 = pd.DataFrame(数组,index)
t2 = pd.DataFrame(字典)
如果索引没有对应的值就会自动为NaN,同时类型会为float型
import pandas as pd
import numpy as np
t1 = pd.DataFrame(np.arange(12).reshape((3,4)))
print(t1)
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
import pandas as pd
a = {'age':[18,20], 'name':['xiao','ming'],'class':[3,6]}
t1 = pd.DataFrame(a)
print(t1)
age name class
0 18 xiao 3
1 20 ming 6
基础属性
df.shape # 行数 列数
df.dtypes # 列数据类型
df.ndim # 数据维度
df.index # 行索引
df.colums # 列索引
df.values # 对象值,二维nadrray数组
整体情况查询
df.head(3) # 显示头部几行,默认5行
df.tail(3) # 显示末尾几行,默认5行
df.info() # 相关信息概览,行数,列数,列索引,列非空值个数,行类型,列类型,内存占用
df.describe() # 快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值
按某列进行排序
import pandas as pd
a = pd.read_csv('data.csv')
t1 = pd.DataFrame(a)
t1 = t1.sort_values(by='差评',ascending=False)
by为排序列字段
ascending为排序方式,Flase为降序,True为升序,默认为True
import pandas as pd
a = pd.read_csv('data.csv')
t1 = pd.DataFrame(a)
t1 = t1.sort_values(by='差评',ascending=False)
print(t1)
票房 喜欢 评论 差评
12 4394028 320053 5931 96245
9 4394028 320053 5931 86245
10 4394028 320053 5931 86245
11 4394028 320053 5931 86245
8 4394028 320053 5931 76245
6 4394028 320053 5931 66245
7 4394028 320053 5931 66245
5 4394028 320053 5931 56245
13 4394028 320053 5931 46245
17 4394028 320053 5931 46245
16 4394028 320053 5931 46245
15 4394028 320053 5931 46245
14 4394028 320053 5931 46245
18 4394028 320053 5931 46245
4 2394028 320053 5931 46245
3 2394028 320053 5931 46245
2 2394028 320053 5931 46245
1 8394028 320053 5931 36245
0 1394028 320053 5931 26245
取行或取列
import pandas as pd
a = pd.read_csv('data.csv')
t1 = pd.DataFrame(a)
print(t1)
print(t1[:5]) # 取前五行
print(t1['票房']) # 取票房字段列
注意点:
方括号写数组代表取行
写字符串表示去列索引
loc通过标签索引行数据
t1.loc[[0,1]] # 第一,二行所有列
print(t1.loc[:,'喜欢']) # 喜欢字段列的所有行
print(t1.loc[[0,1],['喜欢']]) # 一二行的喜欢字段列
iloc通过位置获取行数据
t1.iloc[1,:] # 第二行的所有列
t1.iloc[:,2] # 第三列的所有行
t1.iloc[:,[2,1]] # 第三,二列的所有行
t1.iloc[[0,2],[2,1]] # 第一,三行的三,二列
布尔索引
import pandas as pd
a = pd.read_csv('data.csv')
print(a[a['喜欢']>100]) # a中列字段为喜欢,数值大于100
print(a[(10010000)]) # a中列字段为细化,数值大于10000或小于10000
字符串方法

缺失数据的处理
判断数据是否为NaN
pd.isnull(df)
pd.notnull(df)
处理方式:
删除NaN所在的行列
dropna(axis=0,how='any',inplace=False)
axis=0为按行删除axis=1为按列删除,默认按行
how='any'为有一个NaN即删除,how='all'为所有值为NaN才删除默认为any
inplace=False为删除后不改变本身,True为改变本身,默认为False
填充数据(将NaN替换)
t.fillna(t.mean())
t.fillna(t.median())
t.fillna(0)
处理为0的数据
t[t==0]=np.nan
常用统计方法
.mean() # 平均值
.max() # 最大值
.min() # 最小值
分组和聚合
.grouby(by="字段名") 按字段名进行分组
count 分组中非NA值的数量
sum 非NA值的和
mean 非NA值的平均值
median 非NA值的算数中位数
std、var 无偏(分母为n-1)标准差和方差
min、max 非NA值的最小值和最大值
索引和复合索引
df.index 获取index
df.index=['x','y'] 指定index
df.reindex(list('abcdef'))重新设置index
df.set_index("Country",drop=False) 指定某一列作为index
df.set_index("Country").index.unique() 返回index的唯一值