数据科学入门与实战:玩转pandas之五

通过apply进行数据预处理

首先读入csv文件

df = pd.read_csv('apply_demo.csv')
print(df.head())

在这里插入图片描述
看看规模

print(df.size)

在这里插入图片描述
创建新的series

s1 = Series(['a']*7879)
df['A'] = s1
print(df.head())

打印结果
在这里插入图片描述
把A下面的a变成大写

df['A'] = df['A'].apply(str.upper)
print(df.head())

在这里插入图片描述
把data里面的symbol seqno price变成三列

print(df['data'][0])

在这里插入图片描述
空格符分片

print(df['data'][0].split(' '))

在这里插入图片描述
去除两边的空格

print(df['data'][0].strip().split(' '))

在这里插入图片描述

l = df['data'][0].strip().split(' ')
print(l[1],l[3],l[5])

在这里插入图片描述
定义一个函数然后返回,一个Series

def foo(line):
    items = line.strip().split(' ')
    return Series([items[1],items[3],items[5]])

重新建立一个临时的df_tmp

df_tmp = df['data'].apply(foo)
print(df_tmp.head())

在这里插入图片描述
改变一下他的columns

df_tmp = df_tmp.rename(columns={0:'Symbol',1:'Seqno',2:'Price'})
print(df_tmp.head())

在这里插入图片描述
删除A和data列,得到新的df_new

df_new = df.combine_first(df_tmp)
del df_new['A']
del df_new['data']
print(df_new.head())

在这里插入图片描述
将de_new存入.csv

df_new.to_csv('demo_duplicate.csv')
print(type(df_new))

在这里插入图片描述

对数据集进行清洗

再次告诫自己写博客不要怕麻烦…写详细点否则后面看不懂
首先引入相关包

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

首先读入一个数据文件并且查看

df = pd.read_csv('demo_duplicate.csv')
print(df)

结果
在这里插入图片描述
查看一下size

print(df.size)

在这里插入图片描述
unique():返回参数数组中所有不同的值,并按照从小到大排序
查看一下df[‘Seqno’]中有多少独特的值,结果是有1000值

print(df['Seqno'].unique())#产生一个array
print(len(df['Seqno'].unique()))

在这里插入图片描述
在这里插入图片描述
进行去重,如果一个数据在该列中第一次出现则返回True

print(df['Seqno'].unique())

在这里插入图片描述
将重复的数据删除,默认返回的是重复数据’第一个’数据

print(df['Seqno'].drop_duplicates())

在这里插入图片描述
如果我们想保留重复数据的最后一行

print(df.drop_duplicates(['Seqno'],keep='last'))

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值