python数据分析——pandas数据结构1

参考资料:活用pandas库

1、创建数据

(1)创建Series

        在pandas中,series是一维容器,seires中的数据类型(dtype)必须相同。创建series最简单的方法是传入一个python列表。如果传入的是混合类型的列表,将会使用最常见的类型object。

# 导入库
import pandas as pd
s=pd.Series(['banana',42])
print(s)

        请注意上图中的输出结果,左边显示的“行号”实际是Series的索引。当然也可以指定series的索引,如下:

# 通过传入一个python列表,手动为Series指定索引值
s=pd.Series(["wes mckinney","creator of pandas"],
           index=["Person","Who"])
print(s)

(2)创建DataFrame

        字典是创建DataFrame最常见的方法,键代表列名,值是列的内容。

scientists=pd.DataFrame({
    "Name":["Rosaline Franklin","William Gosset"],
    "Occupation":["Chemist","Statistician"],
    "Born":["1920-07-25","1876-06-13"],
    "Died":["1958-04-16","1937-10-16"],
    "Age":[37,61]
})
print(scientists)

        DataFrame可以使用columns参数指定列的顺序。如果想把那么列作为行索引,可以使用index参数。

scientists=pd.DataFrame({
    "Occupation":["Chemist","Statistician"],
    "Born":["1920-07-25","1876-06-13"],
    "Died":["1958-04-16","1937-10-16"],
    "Age":[37,61]},
    index=["Rosaline Franklin","William Gosset"],
    columns=["Occupation","Born","Died","Age"]
)
print(scientists)

2、Seires

        首先创建一个DataFrame

# 创建名为scients的DataFrame
# 其带有行索引标签
scientists=pd.DataFrame({
    "Occupation":["Chemist","Statistician"],
    "Born":["1920-07-25","1876-06-13"],
    "Died":["1958-04-16","1937-10-16"],
    "Age":[37,61]},
    index=["Rosaline Franklin","William Gosset"],
    columns=["Occupation","Born","Died","Age"]
)
print(scientists)
# 使用行索引标签选择一位科学家
first_row=scientists.loc['William Gosset']
print(type(first_row))
print(first_row)

        我们看输出的结果,第一“列”输出索引,第二“列”输出值。我们可以查看此Seires的索引和值,分别是index属性和values属性,当然我们可以用keys函数来获取索引。如下:

print(first_row.index)
print("-"*20)
print(first_row.keys())
print("-"*20)
print(first_row.values)

(1)类似于ndarray的Series

        Series是pandas的一种数据结构,与numpy.ndarray非常相似,ndarray的许多方法和函数也适用于Series。

        numpy是一个科学计算库,常用于处理数字向量。可以吧Series看作numpy.ndarray的扩展,它们的属性和方法有重叠。针对数字向量,可以进行一些常见的计算,如描述统计。

ages=scientists["Age"]
print(ages)
print("-"*20)
print("均值:",ages.mean())
print("-"*20)
print("最大值:",ages.max())
print("-"*20)
print("最小值:",ages.min())
print("-"*20)
print("标准差:",ages.std(ddof=1))

(2)布尔子集:Series

# 读取数据集
df=pd.read_csv(r"C:\王池池\学习\python\活用pandas库\data\scientists.csv")
# 获取ages数据列作为Series
ages=df["Age"]
print(ages)
# 调用describe方法获取多项描述统计数据
print(ages.describe())
# 调用mean方法获取所有年龄均值
print(ages.mean())
# 获取大于平均值的年龄
print(ages[ages>ages.mean()])
# 查看ages>ages.mean()的返回值
print(ages>ages.mean())

        最后一个print函数的输出结果如下,是一个dtype为bool型的Series。 

(3)操作自动对齐和向量化(广播)

        许多Series方法(以及DataFrame方法)都是向量化的,即这些方法会同时处理整个向量。这种方式让代码更易读,并且通常可以通过优化来加速计算。

        ①如果两个长度相同的向量之间执行计算,所得向量的每个元素是两个向量对应元素的计算结果。

        ②当向量和标量进行运算时,标量会与向量的每个元素逐一进行计算。

        ③处理不同长度的向量时,处理方式决定于向量的类型。对于Series,对向量的操作会根据索引进行。结果限量的其余元素会被填充为“缺失”值,用NaN表示,指“not a number”即“非数值”。

        这种处理方式称为“广播”(broadcasting),pandas的“广播”是指不同shape的数组之间的运算方式。

        ④pandas基本会自动对齐数据。执行操作时,数据会尽可能依据索引标签进行对齐。

# 依据年龄在数据中的原有顺序输出
print(ages)
# 将年龄按索引标签倒序排列
rev_ages=ages.sort_index(ascending=False)
print(rev_ages)
# 参考输出,显示索引标签对齐
print(ages+ages)
# 请注意在向量相反的情况下如何获取相同值
print(ages+rev_ages)
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这篇笔记主要介绍了Pandas模块的基本操作和使用方法。PandasPython中一个用于数据分析和处理的常用库,提供了高效的数据结构数据分析工具,是进行数据处理和数据挖掘的重要工具之一。 一、Pandas数据结构 Pandas主要有两种数据结构:Series和DataFrame。 1. Series Series是一种类似于一维数组的对象,由一组数据和一组与之相关的标签(即索引)组成。Series的创建方式如下: ```python import pandas as pd # 通过列表创建Series s = pd.Series([1, 3, 5, np.nan, 6, 8]) # 通过字典创建Series s = pd.Series({'a': 1, 'b': 2, 'c': 3}) ``` 2. DataFrame DataFrame是一种二维表格数据结构,由一组数据和一组行索引和列索引组成。DataFrame的创建方式有很多种,最常用的是通过字典创建。例如: ```python import pandas as pd data = {'name': ['Tom', 'Jerry', 'Mike'], 'age': [18, 20, 22], 'gender': ['M', 'M', 'F']} df = pd.DataFrame(data) ``` 二、Pandas的基本操作 1. 数据读取 Pandas可以读取多种格式的数据文件,如CSV、Excel、SQL等。常用的读取CSV文件的方式如下: ```python import pandas as pd df = pd.read_csv('data.csv') ``` 2. 数据预处理 数据预处理是数据挖掘中非常重要的一部分,Pandas提供了很多方便的函数和方法来进行数据清洗和转换。常用的数据预处理函数和方法有: - 处理缺失值 ```python # 判断是否存在缺失值 df.isnull() # 删除缺失值 df.dropna() # 填充缺失值 df.fillna(value) ``` - 处理重复值 ```python # 删除重复值 df.drop_duplicates() ``` - 数据转换 ```python # 数据类型转换 df.astype() # 数据替换 df.replace() ``` 3. 数据分析 Pandas提供了各种数据分析和处理的方法和函数,常用的包括: - 统计函数 ```python # 计算平均值 df.mean() # 计算标准差 df.std() # 计算最大值和最小值 df.max(), df.min() ``` - 排序 ```python # 按照某列排序 df.sort_values(by='column_name') ``` - 数据聚合 ```python # 对某列数据进行分组求和 df.groupby('column_name').sum() ``` 以上是Pandas模块的基础内容,还有很多高级用法和技巧需要进一步学习和掌握。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值