AI算法(二)pandas基础


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

一、pandas是什么?

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.数据操作

1.1 从csv中读取数据

import pandas as pd

TaoBao = pd.read_csv("./taobao_data.csv")
print(TaoBao.head())

1.2 向csv中写入数据

说明:index=False 将DataFrame保存成文件时,可以忽略索引信息
index=True 将DataFrame保存成文件时,需要同时保存索引信息

import pandas as pd

TaoBao = pd.read_csv("./taobao_data.csv")
# print(TaoBao.head())
TaoBao.to_csv("./taobao_data.csv", columns=['商品', '价格'], index=False, header=True)

1.3 行的选取

选择第0~2行

import pandas as pd

TaoBao = pd.read_csv("./taobao_data.csv")
# print(TaoBao.head())
# TaoBao.to_csv("./taobao_data.csv", columns=['商品', '价格'], index=False, header=True)
rows = TaoBao[0:3]
print(rows)

1.4 列的选取

选择宝贝、价格两列

import pandas as pd

TaoBao = pd.read_csv("./taobao_data.csv")
# print(TaoBao.head())
# TaoBao.to_csv("./taobao_data.csv", columns=['商品', '价格'], index=False, header=True)
cols = TaoBao[['宝贝', '价格']]
print(cols)

1.5 操作列

在已有的列中创建一个新的列

# -*- coding = utf-8 -*-
import pandas as pd

TaoBao = pd.read_csv("./taobao_data.csv")
# print(TaoBao.head())
# TaoBao.to_csv("./taobao_data.csv", columns=['商品', '价格'], index=False, header=True)
TaoBao['销售额'] = TaoBao['价格'] * TaoBao['成交量']

1.6 根据条件过滤行

在方括号中加入判断条件来过滤行,条件必须返回True或者False

TaoBao[(TaoBao['价格'] < 100) & (TaoBao['成交量'] > 10000)]

1.7 数据整理

将数据框按照 “位置” 字段进行排序,输入以下代码并执行

df = TaoBao.set_index("位置")  # 将位置字段设为index
df = df.sort_index()
df.head()

将成交量按位置分组计算均值和求和

df_mean = df.drop(["宝贝""卖家"], axis=1).groupby("位置").mean().sort_values("成交量", ascending=False)  
# drop(默认 axis=0)删掉行, axis=1 删掉列
# groupby 汇总
# sort_values 排序

1.8 数据描述

查看表的数据信息

df.info()

查看表的描述性统计信息

df.describe()

2 .数据分割、分组等

2.1 数据分组

按 “位置进行分组 ”,并计算“成交量”列的平均值

grouped = df['成交量'].groupby(df['位置'])
grouped.mean()

2.2 数据分割

df1 = df[30:40][['位置', '卖家']]
# df1中包含df的第30~39行数据,只保留“位置”“卖家”两列

2.3 数据合并

用一个或多个键将行连接起来

pd.merge(df1, df2)  # 不指定列名,默认会选择列名相同的“卖家”列
pd.merge(df1, df2, on='卖家')  # 指定列名 

轴向连接

s1 = df[:5]['商品']
s2 = df[5:10]['商品']
s3 = df[10:15]['商品']
pd.concat([s1, s2, s3])

3.数据创建

3.1 一维数据

创建一维数组,索引为a, b, c

b = pd.Series([1, 2, 3] ,index=['a', 'b', 'c'], dtype=int)
c = pd.Series({'a':1, "b":2, "c":3}) # 索引字典
d = pd.Series(np.arange(20))

3.2 数据查看

print(b.values)
print(type(b.values))

数据切片分割

print(b[0])
print(b['a'])
print(b[2:4])
print(b[[0]])

获取列、行、头、尾

print(n['A'])  # 获取列
print(n.loc[0])  # 获取行
print(n.iloc[1, 1])
print(m.head())  # 看头
print(m.tail(n=10))  # 看尾

3.3 二维数据

对numpy的变形或者两个一位数组的叠加

m = pd.DataFrame(np.arange(200).reshape(40, 5))  # 二维
n = pd.DataFrame({"A": pd.Series([1, 2, 3, 4]), "B": pd.Series([2, 3, 4, 5])})

总结

panda较于numpy更为常用,在机器学习会用到大量需要用panda处理的数据,需熟练掌握

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清忖灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值