andas

numpy能够帮我们处理处理数值型数据,但是这还不够,很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等pandas的常用数据类型

numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据

Pandas 是一种开源数据分析工具,它提供了高性能、易于使用的数据结构和数据分析工具,用于处理各种类型的数据

Pandas 最主要的数据结构是 Series 和 DataFrame,Series 是一维标记数组,而 DataFrame 是二维表格数据结构,类似于关系型数据库中的表。

Pandas 支持从多种数据源读取数据,包括 CSV 文件、Excel 文件、数据库查询结果、以及 Web API 等。同时,Pandas 提供了强大的数据清洗、转换、合并等操作,使得数据处理变得更加简单高效。

1.Series 一维,带标签数组

2.DataFrame 二维,Series容器

pandas之Series创建

a=pd.Series([1,2,3,4,32,45,4])
print(a)
​
# 创建包含三个字符串元素的 Series 对象,并为其添加标签索引
s = pd.Series(['apple', 'banana', 'orange'], index=['a', 'b', 'c'])
​
# 打印输出 Series 对象
print(s)

其中,a、b、c 就是标签索引,object 是数据类型,每行分别表示该标签所对应的元素值。需注意,在创建 Series 对象时,数据序列的长度必须与标签索引的长度一致。

pandas之Series切片和索引

pandas 的 Series 数据类型支持多种不同的切片和索引方式,以下是其中几种常用的方法:

  1. 整数位置索引:使用整数值作为 Series 的索引。可以通过在方括号中传入整数索引来获取指定位置的元素。例如,若 s = pd.Series([10, 20, 30, 40]),则可以通过 s[0] 来获取第一个元素。

  2. 标签索引:使用字符串值作为 Series 的索引。可以通过在方括号中传入字符串索引的名称来获取指定标签的元素。例如,若 s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']),则可以通过 s['a'] 来获取索引值为 'a' 的元素。

  3. 切片:可以使用方括号和冒号运算符来提取 Series 中的连续多个元素。例如,若 s = pd.Series([10, 20, 30, 40, 50]),则可以通过 s[1:4] 来获取从第二个到第四个元素(范围不包括终止位置)。

  4. 布尔索引:可以使用布尔值向量作为索引,以获取符合特定条件的元素。例如,若 s = pd.Series([10, 20, 30, 40]),则可以通过 s[s > 20] 来获取大于 20 的元素。

pandas之Series的索引和值

  • Series 的索引

Series 对象的索引是一组独立的数据,它们与数值部分建立了一一对应关系,用于定位和访问具体的值。Pandas 支持多种类型的索引,包括默认整数索引、字符串索引、时间戳索引等。

Series 对象的默认整数索引从 0 开始,逐渐递增。可以使用 index 属性查看/修改索引,并使用 values 属性查看 Series 对象中所有的数值。

import pandas as pd
​
# 创建一个简单的Series对象
data = [1,2,3,4]
s = pd.Series(data)
​
# 查看Series的索引和数值
print(s.index)   # RangeIndex(start=0, stop=4, step=1)
print(s.values)  # array([1, 2, 3, 4], dtype=int64)
​
# 修改Series的索引
s.index = ['a','b','c','d']
print(s.index)  # Index(['a', 'b', 'c', 'd'], dtype='object')
print(s)
  • 访问 Series 的值

Series 对象的数值可以通过访问其索引位置实现。Square bracket notation 方式是最常用的方式来访问 Series 对象中的单个值、切片和布尔型数组中的值。

import pandas as pd
​
# 创建一个简单的Series对象
data = [1,2,3,4]
s = pd.Series(data)

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
​
file_path = "./IMDB-Movie-Data.csv"
​
df = pd.read_csv(file_path)
print(df["Genre"].head(3))
print("*******")
# 统计分类的列表
temp_list = df["Genre"].str.split(",").tolist()#[],[],[]
# print(df["Genre"])
genre_list=list(set([i for j in temp_list for i in j]))
zeros_df=pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)
​
for i in range(df.shape[0]):
    zeros_df.loc[i,temp_list[i]]=1
​
# print(zeros_df.head(3))
​
genre_count=zeros_df.sum(axis=0)
print(genre_count)
genre_count=genre_count.sort_values()
_x=genre_count.index
_y=genre_count.values
#画图
plt.figure(figsize=(15,8),dpi=80)
plt.bar(range(len(_x)),_y)
plt.xticks(range(len(_x)),_x)
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值