pandas删除某列有空值的行_十分钟就想搞定pandas?

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

4668003e405983ed74661c1b51454c39.png
bc0ca9799b7653958be843ad92e5f758.png

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

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

8a27f94464e6c52e7e934930be5a11fa.png
  • 导入包

import pandas as pd

import numpy as np

  • 导入数据

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

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

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

2725196ffe9da0b0cbdaf34333b280ad.png

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知乎一直报未知错误(醉了,我在整篇文章中用二分法试出来两句),只能截图

af358c795d41ab4da605d65204484b34.png

#按列拼接

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一直报未知错误(再次醉了)

6aa730ff99dc345a5b8fe1597d5fb69d.png

#转换数据类型

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最常用的函数方法就介绍到这里了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值