加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python数据分析-看了这篇文章,数据清洗你也就完全掌握了

发布时间:2019-09-12 02:49:19 所属栏目:教程 来源:哗啦圈的梦
导读:所有做数据分析的前提就是:你得有数据,而且已经经过清洗,整理成需要的格式。 不管你从哪里获取了数据,你都需要认真仔细观察你的数据,对不合规的数据进行清理,虽然不是说一定要有这个步骤,但是这是一个好习惯,因为保不齐后面分析的时候发现之前因为

df.dtypes:查看数值类型

python数据分析-看了这篇文章,数据清洗你也就完全掌握了
  1. astype()强制转化数据类型
  2. 通过创建自定义的函数进行数据转化
  3.  pandas提供的to_nueric()以及to_datetime()
  1. df["Active"].astype("bool") 
  2. df['2016'].astype('float') 
  3. df["2016"].apply(lambda x: x.replace(",","").replace("$","")).astype("float64") 
  4. df["Percent Growth"].apply(lambda x: x.replace("%","")).astype("float")/100 
  5. pd.to_numeric(df["Jan Units"],errors='coerce').fillna(0) 
  6. pd.to_datetime(df[['Month', 'Day', 'Year']]) 

筛选数据:

1、按索引提取单行的数值

  1. df_inner.loc[3] 

2、按索引提取区域行数值

  1. df_inner.iloc[0:5] 

3、提取4日之前的所有数据

  1. df_inner[:’2013-01-04’] 

4、使用iloc按位置区域提取数据

  1. df_inner.iloc[:3,:2] #冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从0开始,前三行,前两列。 

5、适应iloc按位置单独提起数据

  1. df_inner.iloc[[0,2,5],[4,5]] #提取第0、2、5行,4、5列 

6、使用ix按索引标签和位置混合提取数据

  1. df_inner.ix[:’2013-01-03’,:4] #2013-01-03号之前,前四列数据 

7、使用loc提取行和列

  1. df_inner.loc(2:10,"A":"Z") 

8、判断city列里是否包含beijing和shanghai,然后将符合条件的数据提取出来

  1. df_inner[‘city’].isin([‘beijing’]) 
  2. df_inner.loc[df_inner[‘city’].isin([‘beijing’,’shanghai’])] 

9、提取前三个字符,并生成数据表

  1. pd.DataFrame(category.str[:3]) 

10、使用“与”进行筛选

  1. df_inner.loc[(df_inner[‘age’] > 25) & (df_inner[‘city’] == ‘beijing’), [‘id’,’city’,’age’,’category’,’gender’]] 

11、使用“或”进行筛选

  1. df_inner.loc[(df_inner[‘age’] > 25) | (df_inner[‘city’] == ‘beijing’), [‘id’,’city’,’age’,’category’,’gender’]].sort([‘age’]) 

12、使用“非”条件进行筛选

  1. df_inner.loc[(df_inner[‘city’] != ‘beijing’), [‘id’,’city’,’age’,’category’,’gender’]].sort([‘id’]) 

13、对筛选后的数据按city列进行计数

  1. df_inner.loc[(df_inner[‘city’] != ‘beijing’), [‘id’,’city’,’age’,’category’,’gender’]].sort([‘id’]).city.count() 

14、使用query函数进行筛选

  1. df_inner.query(‘city == [“beijing”, “shanghai”]’) 

15、对筛选后的结果按prince进行求和

  1. df_inner.query(‘city == [“beijing”, “shanghai”]’).price.sum() 

数据排序

按照特定列的值排序:

  1. df_inner.sort_values(by=[‘age’]) 

按照索引列排序:

  1. df_inner.sort_index() 

升序

  1. df_inner.sort_values(by=[‘age’],ascending=True) 

降序

  1. df_inner.sort_values(by=[‘age’],ascending=False) 

合并匹配:

merge

  1. 1.result = pd.merge(left, right, on='key') 
  2. 2.result = pd.merge(left, right, on=['key1', 'key2']) 
  3. 3.result = pd.merge(left, right, how='left', on=['key1', 'key2']) 
  4. 4.result = pd.merge(left, right, how='right', on=['key1', 'key2']) 
  5. 5.result = pd.merge(left, right, how='outer', on=['key1', 'key2']) 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读