where1-1
  • 导入包

import pandas as pd 
import numpy as np

 

  • 导入数据

#默认utf-8,gbk对中文的支持更好
pd.read_csv(filename,encoding=\'gbk\')
#key是列名,value是数据,从字典导入数据需要指定index
dict1 = {\'a\':1,\'b\':2}
df = pd.DataFrame(dict1,index=[0])

 

  • 查看数据

#行数、列数
df.shape[0]
df.shape[1]
#前几行,后几行,默认为5
df.head()
df.tail(3)
#数据汇总统计
df.describe()
#数据概况
df.info()
#列名
df.columns
#数据类型
df.dtypes
#各列平均值
df.mean()

 

  • 数据选取

#按列名查看某列
df[col_name]
df.col_name
#查列名看多列
df[[col1,col2]]
#按索引查看某行,第一行:
df.iloc[0]
#按索引查看某行某列,三行四列那个元素
df.iloc[2,3]

 

  • 数据合并

#按行拼接
pieces = [df[2:20],df[23:30],df[35:40]]
df2 = pd.concat(pieces)
#按列拼接
left = pd.DataFrame({\'key\': [\'foo\', \'bar\'], \'col1\': [1, 2]})
right = pd.DataFrame({\'key\': [\'foo\', \'bar\'], \'col2\': [4, 5]})
pd.merge(left,right,on=\'key\')
#增加一列
df = pd.DataFrame(np.random.randn(8, 4), columns=[\'A\',\'B\',\'C\',\'D\'])
extra = df.iloc[-1]
data = df.append(extra)

 

 

  • 数据清理 (注意: 修改DataFrame要赋值)

#检查是否空值,返回布尔值(rue,False)
df.isnull()
#返回各列空值的个数
df.isnull().sum()
#处理空值,用x替换空值
df = df.fillna(x)
#删除包含空值的行
df = df.dropna()
#删除包含空值的列
df = df.dropna(axis=1)

 

  • 数据处理

#选择某列大于1的行
df[df[colname]>1]
#选择某列包含x或者y字段的行,pandas有很多字符串处理函数
df[df[colname].str.contains(x|y)]
#替换字符
df[df[colname].replace(\'k\',\'000\')]
#转换数据类型
df.num = df.num.astype(float)
#查看某列的唯一值的个数
df.colname.value_counts()
#按照某列排序(默认升序)
df.sort_values(by = colname,ascending=True)
#应用函数,简单的可以用lambda
df.apply(lambda x:x.max()-x.min())
#复杂的可以先定义好函数
def func():
   pass
df.apply(func)
#也可以用numpy自带的,例如cumsum累加
df.apply(np.cumsum)

 

  • 分组聚合

#准备数据
df = pd.DataFrame({\'A\' : [\'foo\', \'bar\', \'foo\', \'bar\',
                            \'foo\', \'bar\', \'foo\', \'foo\'],
                     \'B\' : [\'one\', \'one\', \'two\', \'three\',
                            \'two\', \'two\', \'one\', \'three\'],
                     \'C\' : np.random.randn(8),
                     \'D\' : np.random.randn(8)})
#对两列进行分组并求均值,类似于SQL里的group by
df.groupby([\'A\',\'B\']).mean()
#数据透视表,以col1为行,col2为列,取col3和col4的最大值,可以参考Excel的数据透视表
df.pivot_table(index=col1,columns=col2,values=[col3,col4],aggfunc=max)

 

分类:

技术点:

相关文章: