常用命令(python数据分析)

  • 导入包

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)

 

posted @ 2019-12-03 13:39  始觉春空  阅读(569)  评论(0编辑  收藏  举报