数据分析-Pandas教程:常见使用方法-模拟案例

Pandas是Python数据分析库。

Pandas把结构化数据分为了三类:Series、DataFrame、Panel,分别可以理解为 MySQL 表的一列、表、库。

1.引入:

        可以使用pycharm搜索安装,超级简单。

import numpy as np

import pandas as pd

2.导入数据或创建数据:

df_1 = pd.read_csv(inF1)

inF1 可以是csv文件的路径。

也可以创建数据,咳咳,这个是从别人那里copy来的,不用在意这些细节。。。

  df_1 = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59], 'tip': [1.01, 1.66, 3.50, 3.31, 3.61], 'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})

3.操作数据

导入的csv和创建的数据都会形成一个DataFrame数据。

DataFrame是表格型数据结构,包含一组有序的列,每列可以是不同的值类型。可以看出MySQL的表。

(1)非常简单的数据提取

print(df[['total_bill', 'tip']])

(2)带点条件的提取

print df[df['total_bill'] > 20]

(3)复杂条件的提取

print df[(df['sex'] == 'Female') & (df['total_bill'] > 20)]

(4)小总结,可以使用任意条件:=  >  <  !  size()   count()   等

(5)merge  重要!!!

简单来说就是MySQL里面的join

合并数据集, 通过left, right确定连接字段,默认是两个数据集相同的字段 

how 连接方式:‘inner’(默认);还有,‘outer’、‘left’、‘right’ 

on 用于连接的列名,必须同时存在于左右两个DataFrame对象中,如果位指定,则以left和right列名的交集作为连接键 

left_on 左侧DataFarme中用作连接键的列 

right_on 右侧DataFarme中用作连接键的列 

left_index 将左侧的行索引用作其连接键 

right_index 将右侧的行索引用作其连接键 

真乱,举个例子!

df_3 = pd.merge(df_1, df_2, on=['id', "name"], how="left")

 

就是df_1和df_2两个csv文件的数据,想用id和name把这两个数据集关联起来,向df_1看齐。

(6)删除列

merge完后,发现有好多不想要的列,或者说,需求里面没有要

删啊,留着干嘛,等领导说你两句??

df_3.drop(['name2'], axis=1, inplace=True)

把name2这个字段删除了,axis=1删除的是列,为0删除是行,inplace=True在源数据上直接修改。

(7)修改列名

删完发现,有的字段名起的很一般,一看英语就不咋好,让我这8级的给改改吧(自行车水平8级)

df_4 = df_3.rename(columns={'name2': 'nameTwo'})

name2改成了nameTwo,哈哈,很强势,就这么干。

(8)字段内容替换

数据总算看着顺眼多了,可是。。。需求说,把Female改成  Lady   (mmp,要这么绅士干什么)

df.replace(to_replace='Female', value='Lady', inplace=True)

搞定!!!

df.loc[df.sex == 'Female', 'sex'] = 'Lady'

这么来也行,效果一样。。。

(9)apply方法使用

第二天,需求又说了,把Female中的Fe改成  Lady ,,,(实际数据要比这个复杂多)

def replaceZeno(replaceZeno):
    return str(replaceZeno).replace("Fe", "Lady")
df_4['sex'] = df_4['sex'].apply(replaceZeno)

上边是方法,下边是调用。。。应该很好理解吧。。。

(10)数据导出

df_4.to_csv(outF4, index=False)

outF4 改成自己的输出路径,完事!

 

总结:额,算了,不写了

一句话,遇到不会的,就往MySQL那边想,都有相对应的实现。

mysql不会??

MySQL从入门到放弃,  了解一下???

 

交流群:453908562

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值