python数据分析学习篇(五)

Pandas

Seriesh和Dataframe

series是个定长的字典序列
dataFrame数据结构类似数据表


import pandas as pd
from pandas import Series, DataFrame
data = {'Chinese': [66, 95, 93, 90,80],'English': [65, 85, 92, 88, 90],'Math': [30, 98, 96, 77, 90]}
df1= DataFrame(data)
df2 = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei'], columns=['English', 'Math', 'Chinese'])
print df1
print df2

数据导入和输出

import pandas as pd
pd.read_csv()
pd.read_excel()

数据清洗

1.删除不必要的行列


df2 = df2.drop(columns=['Chinese'])

df2 = df2.drop(index=['ZhangFei'])

2.重命名列名


df2.rename(columns={'Chinese': 'YuWen', 'English': 'Yingyu'}, inplace = True)

3.去重复值


df = df.drop_duplicates() #去除重复行

4.补缺失值

在这里插入图片描述

5.更改数据格式


df2['Chinese'].astype('str') 
df2['Chinese'].astype(np.int64) 

6.处理空格

查找空格

df.isnull()
#如果想知道哪列存在空值
df.isnull().any()

#删除左右两边空格
df2['Chinese']=df2['Chinese'].map(str.strip)
#删除左边空格
df2['Chinese']=df2['Chinese'].map(str.lstrip)
#删除右边空格
df2['Chinese']=df2['Chinese'].map(str.rstrip)

7.删除特殊字符


df2['Chinese']=df2['Chinese'].str.strip('$')

8.大小写转换

#全部大写
df2.columns = df2.columns.str.upper()
#全部小写
df2.columns = df2.columns.str.lower()
#首字母大写
df2.columns = df2.columns.str.title()

9.apply函数


df['name'] = df['name'].apply(str.upper)

也可以定义某个函数进行相关操作


def double_df(x):
           return 2*x
df1[u'语文'] = df1[u'语文'].apply(double_df)

#新增两列
def plus(df,n,m):
    df['new1'] = (df[u'语文']+df[u'英语']) * m
    df['new2'] = (df[u'语文']+df[u'英语']) * n
    return df
df1 = df1.apply(plus,axis=1,args=(2,3,))

在这里插入图片描述

数据统计

在这里插入图片描述

数据表合并


df1 = DataFrame({'name':['ZhangFei', 'GuanYu', 'a', 'b', 'c'], 'data1':range(5)})
df2 = DataFrame({'name':['ZhangFei', 'GuanYu', 'A', 'B', 'C'], 'data2':range(5)})

包括

  1. 基于指定列进行连接
  2. inner内连接
  3. left左连接
  4. right右连接
  5. outer外连接

用sql方式打开pandas


import pandas as pd
from pandas import DataFrame
from pandasql import sqldf, load_meat, load_births
df1 = DataFrame({'name':['ZhangFei', 'GuanYu', 'a', 'b', 'c'], 'data1':range(5)})
pysqldf = lambda sql: sqldf(sql, globals())
sql = "select * from df1 where name ='ZhangFei'"
print pysqldf(sql)

lambda

在这里插入图片描述


 lambda argument_list: expression

pysqldf = lambda sql: sqldf(sql, globals())

在这里插入图片描述

总结

在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值