机器学习——Pandas库

机器学习——Pandas库

介绍

Pandas是数据再加工过程中使用的最广泛的工具,它包含为使数据分析更加快速便捷而设计的高级数据结构与数据操作工具。Pandas基于NumPy开发,它不仅提供了很多方法和函数,使得处理数据更容易;而且它已经优化了运行速度,与使用Python内置函数进行数据处理相比,这个一个显著的优势。NumPy、SciPy和Pandas三者构成了Python科学计算的支柱。

安装

pip install pandas
conda install pandas

数据结构

Series

Series是一种类似于一维数组的对象,它由一维数组(各种numpy数据类型)以及一组与之相关的数据标签(即索引)组成,仅由一组数据即可产生最简单的Series.

Series的字符串表现形式为:索引在左边,值在右边。如果没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(公用同一个索引)。跟其他类似的数据结构相比,DataFrame中面向行和面向列的操作基本是平衡的。其实,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或者别的一维数据结构)。

使用

csv

import pandas as pd
from pandas import DataFrame, Series

#将一个xls/xlsx转换成csv
df = DataFrame(pd.read_excel('test.xls'))
df.to_csv('test1.csv')
print(df)

属性与方法

#读取一个csv,获得一个对象
info = pd.read_csv("test1.csv")
# 输出表格的类型,类型为<class 'pandas.core.frame.DataFrame'>
print(type(info))
#输出 表格内容的类型
print(info.dtypes)
# 输出前5条内容
print(info.head())
#获得表格维度(行,列)
print(info.shape)
# 通过列名,获得一个列表,里面是所有的属性
# print(info.listname)
# 获取列中的最大最小值
print(info['listname'].max())
print(info['listname'].min())

数据操作

#获取数据,可以使用列表规则
info = pd.read_csv("test1.csv")
#按照行取数据
print(info.loc[1])
print(info.loc[1:10])
#按照列取数据
name_li = info['listname','listname']
print(name_li)
print(name_li[2:5])
info_null = info.isnull(listname)
info_null_true = info[info_null]
print(info_null_true)

# 将列取出并转换为列表格式
columns = info.listname.tolist()
print(columns)
#可以在维度相同时,添加数据
test = info['cost'] / 100
info['cost2'] = test

## 计算
## 会将属性中的每一项除以100
test = info['cost'] / 100
## 维度相同,会一对一相除
test = info['total'] / info['cost']

## 排序
## 对列的属性进行排列,inplace表示是否在当前表格操作,ascending为False是降序
info.sort_values("listname",inplace=True,ascending=False)

#缺失值
age = info['age']
age_is_null = info.isnull()
age_null_true = age[age_is_null]
print(len(age_null_true))
age_age = info['age'][age_is_null == False]
age_avg = sum(age_age)/len(age_age)

#平均值,去掉缺失值
age_avg = info['age'].mean()

数据统计

#统计,index:以谁为基准;values:和谁的关系;aggfunc:什么关系,默认求平均值
passenger = info.pivot_table(index="name",values="ss",aggfunc=np.mean)
passenger2 = info.pivot_table(index="name",values=["ss","saf"],aggfunc=np.sum)

##丢掉缺失值
drop_info = info.dropna(axis=1)
new_info = info.dropna(axis=0,subset=["ss","age"])

自定义函数

#自定义函数
def ss(colu):
    hundredth = colu.loc[99]
    return hundredth

hun = info.apply(ss)
print(hun)

series结构

列表其中的一行或者一列是一个series结构

from pandas import Series
import numpy as np

series_films = info['film']
series_customs = info['custom']
film_names = series_films.values
custom_names = series_customs.values
print(type(film_names))

series_custom = Series(custom_names,index=film_names)
films_sort = sorted(film_names)
ss = np.add(film_names,custom_names)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值