美文网首页Pandas
pandas数据清洗与整理

pandas数据清洗与整理

作者: 文嘉达_0da8 | 来源:发表于2020-06-18 23:50 被阅读0次

一、数据清洗

1. 查看缺失值

可以获取每列的缺失值数量,再通过求和就可以获取整个DataFrame的缺失值数量。

df.isnull()   #True为缺失值
df.isnull().sum()    

可以通过info方法,看出DataFrame每列数据的缺失值情况。

df.info()

2.删除缺失值

df.dropna()
df.dropna(how='all')      #传入how=all,只会删除全为NaN的那些行
df.dropna(how='all',axis=1)    #如果需要删除列,则指定轴方向即可

3. 填充缺失值

df.fillna(0)

也可以针对不同列填充不同的值

df.fillna({'性别':'男','年龄':30})    

对重新索引(reindex)中填充缺失值的方法同样适用于fillna中,也可以通过平均值等作为填充数。

df.fillna(method='ffill')
df[0]=df[0].fillna(df[0].mean())

4.替换值

  • 一对一替换
df.replace(' ','不祥')
  • 多对一替换
df[0].replace([240,260,280],33)
  • 多对多替换
df.replace({240:32,260:33,280:34})

5. 移除重复数据

通过duplicated方法判断各行是否有重复数据,通过drop_duplicates可以删除多余的重复项。

data={
    'city':['北京','上海','北京','北京'],
    'name':['张三','李四','张三','小明'],
    'sex':['female','male','female','male'],
    'year':[2001,2002,2001,2002]
}
df=pd.DataFrame(data)
Out[ ]:
    city  name  sex    year
0   北京  张三  female  2001
1   上海  李四  male    2002
2   北京  张三  female  2001
3   北京  小明  male    2002

df.duplicated()
Out[ ]:
0    False
1    False
2     True
3    False
dtype: bool

df.drop_duplicates(['sex','year'])
Out[ ]:
    city  name  sex    year
0   北京  张三  female  2001
1   上海  李四  male    2002

二、数据合并和重塑

1.merge合并

fruit
Out[ ]:
    fruit  price
0   apple     23
1  banana     32
2  orange     45

amount
Out[ ]:
    amount   fruit
0       5   apple
1       3  banana
2       6   apple
3       3   apple
4       5  banana

由于两个DataFrame都有fruit列名,所以默认按该列进行合并。也可以用on来指定列名。

pd.merge(price,amount)
pd.merge(price,amount,on='fruit')
    fruit price amount
0   apple   23  5
1   apple   23  6
2   apple   23  3
3   banana  32  3
4   banana  32  5
  • 指定左右连接键(两个表没有公共列)
pd.merge(price,amount,left_on='fruit',right_on='fruit')
  • 把索引列当做连接键
pd.merge(df1,df2,left_index=True,right_index=True)

merge默认为内连接(inner),也可以选择左连接(left)、右连接(right)和外连接(outer)

pd.merge(amount,price,how='left')
pd.merge(amount,price,how='right')
pd.merge(amount,price,how='outer')

合并时要考虑列名重复的问题,可以用suffixes处理改问题

pd.merge(df1,df2,on='key1',suffixes=('_left','_right')

2. concat连接

pd.concat([df1,df2])
pd.concat([df1,df2],ignore_index=True)

3. 数组重塑

df=pd.DataFrame(np.arange(9).reshape(3,3),
            index=['a','b','c'],
            columns=['one','two','three'])
df.index.name='alph'
df.columns.name='number'
Out[ ]:
number one  two three
alph            
a      0    1   2
b      3    4   5
c      6    7   8

df.stack()
Out[ ]:
alph  number
a     one       0
      two       1
      three     2
b     one       3
      two       4
      three     5
c     one       6
      two       7
      three     8
dtype: int32

df.unstack()
Out[ ]:
number one  two three
alph            
a      0    1   2
b      3    4   5
c      6    7   8

4. 字符串处理

把数据分成两列,常用的方法是通过函数应用来完成。

data={
    'data':['张三|男','李四|女','王五|女','小明|男']
}
df=pd.DataFrame(data)
Out[ ]:
data
0   张三|男
1   李四|女
2   王五|女
3   小明|男

result=df['data'].apply(lambda x:pd.Series(x.split('|')))
Out[ ]:
      0   1
0   张三  男
1   李四  女
2   王五  女
3   小明  男

pandas中的str属性可以轻松调用字符串的方法,并运用到整个字段中

df['name']=new_df.str[0]
df['sex']=new_df.str[1]
df
Out[ ]:
     data     name  sex
0   张三|男    张三  男
1   李四|女    李四  女
2   王五|女    王五  女
3   小明|男    小明  男

———————————————————
以上内容均来自书籍或网络,为个人的学习笔记,如有侵权,请联系删帖。

相关文章

  • pandas数据清洗与整理

    一、数据清洗 1. 查看缺失值 可以获取每列的缺失值数量,再通过求和就可以获取整个DataFrame的缺失值数量。...

  • 爬虫分析之数据存储——基于MySQL,Scrapy

    上一篇->爬虫练习之数据整理——基于Pandas上上篇->爬虫练习之数据清洗——基于Pandas 配置MySql ...

  • pandas入门

    pandas入门 简介 pandas包含的数据结构和操作工具能快速简单地清洗和分析数据。 pandas经常与Num...

  • 《利用Python进行数据分析》 13.1pandas与建模代码

    第十三章 Python建模库介绍 13.1 pandas与建模代码的结合 使用pandas用于数据载入和数据清洗...

  • data cleaning

    利用pandas 库进行数据清洗——实战练习 这周的计划是用之前看过的pandas模块对具体数据做数据清洗并做数据...

  • Pandas(数据清洗)

    在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。 这工作会占到分析师时间的80%...

  • Pandas数据清洗

    原文:https://www.cnblogs.com/BoyceYang/p/8182053.html https...

  • pandas 数据清洗

    缺失值填充:fillna()函数详解 重复数据删除:https://blog.csdn.net/weixin_38...

  • Pandas 基本使用(三) — DataFrame.to_di

    Pandas 处理数据的基本类型为 DataFrame,数据清洗时不可必然会关系到数据类型转化问题,Pandas ...

  • 爬虫练习之数据整理——基于Pandas

    上一篇->爬虫练习之数据清洗——基于Pandas 目的 本次数据整理的小目标是将薪资数据拿出来单独处理为统一的格式...

网友评论

    本文标题:pandas数据清洗与整理

    本文链接:https://www.haomeiwen.com/subject/wbdpxktx.html