用Python做数据分析,Numpy,Pandas,matplotlib是怎么也绕不开的三个包,我最开始学习pandas是看的《利用Python进行数据分析》,看了好几遍,不是从头到尾看了好几遍,是顺着看、挑着看、精读略读强行。




python删除某一列not found python删除某一列有空值的行_数据类型


python删除某一列not found python删除某一列有空值的行_数据挖掘_02


供大家学习交流,python爬虫,数据挖掘,分析等

所以这篇文章,我总结了我认为的Pandas最常用的功能,供大家学习借鉴。


python删除某一列not found python删除某一列有空值的行_pandas根据某列的值删除某行_03


  • 导入包

import pandas as pd

import numpy as np

  • 导入数据

#默认utf-8,gbk对中文的支持更好

pd.read_csv(filename,encoding='gbk')

#key是列名,value是数据,从字典导入数据需要指定index


python删除某一列not found python删除某一列有空值的行_pandas删除某列有空值的行_04


python基础,数据挖掘,分析,自动运维等

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]]

下面这句replace知乎一直报未知错误(醉了,我在整篇文章中用二分法试出来两句),只能截图


python删除某一列not found python删除某一列有空值的行_数据类型_05


#按列拼接

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要赋值)

#检查是否空值,返回布尔值(True,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)]

下面这句replace一直报未知错误(再次醉了)


python删除某一列not found python删除某一列有空值的行_pandas根据某列的值删除某行_06


#转换数据类型

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)

Pandas最常用的函数方法就介绍到这里了!