pandas学习笔记之Series

pandas学习笔记之Series

pandas中Series的创建

引用数据库

import pandas as pd
s=pd.Series( data, index, dtype, copy,name)
参数名称描述
data输入的数据,可以是列表、常量、ndarray 数组等。
index索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。
dtypedtype表示数据类型,如果没有提供,则会自动判断得出。
copy表示对 data 进行拷贝,默认为 False。
name接收string或list。表示Series对象的名称。默认为None
1)用python中的列表list创建:
import pandas as pd
my_list=[1,2,3,4]
my_Series=pd.Series(my_list)
print(my_list)

输出结果如下:

0    1
1    2
2    3
3    4
dtype: int64
2)用numpy数组创建
import pandas as pd
import numpy as np
my_array=np.array([1,2,3,4])
s=pd.Series(my_array)
print(s)

输出结果如下:

0    1
1    2
2    3
3    4
dtype: int32
3)用python中的字典dict创建:
import pandas as pd
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print(s)

输出结果如下:

a 0.0
b 1.0
c 2.0
dtype: float64
4)标量创建Series对象:

如果 data 是标量值,则必须提供索引,示例如下:

import pandas as pd
s = pd.Series(5, index=[0, 1, 2, 3])
print(s)

输出如下:

0  5
1  5
2  5
3  5
dtype: int64
5)为index参数传递索引:

以上面的dict方法举例:

import pandas as pd
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)

输出结果如下:

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64

其中需要注意的是索引没有匹配值时会返回NAN值

pandas中Series的访问

# 访问Series中数据的两种方法
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
print(s1[0])             #通过元素储存位置访问
print(s1['张三'])         #通过指定索引访问
# 结果均为 75
1)切片操作

数据切片的概念源于Numpy数组,Series对象使用类似NumPy中ndarray的数据访问方法实现切片操作。

#Series的切片操作
import pandas as pd
s1 = pd.Series([ 75, 90, 61, 59],index=['a', 'b', 'c', 'd']) 
s1[1:3]
2) 通过bool数组访问Series数据
import pandas as pd
import numpy as np
my_array=np.array([1,2,3,4])
s=pd.Series(my_array,['a','b','c','d'])
print(s)
print(s[s.index>'a'])

输出:

a    1
b    2
c    3
d    4
dtype: int32
b    2
c    3
d    4
dtype: int32
3)数据修改

可以直接通过赋值的方法修改Series中的对应值。

# 修改Series中的值
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
s1['张三'] = 60         #通过指定索引访问
s1[1] = 60            #通过元素储存位置访问
print(s1)

输出数据:

张三    60
李四    60
陈五    61
dtype: int64
4)算术运算

Pandas会根据索引index索引对相应数据进行计算。如代码所示,可以直接对Series结构进行加减乘除运算符,当出现index不匹配的情况时会输出NaN。

import pandas as pd
sr1 = pd.Series([1, 2, 3, 4],['a','b','c','d'])
sr2 = pd.Series([1, 5, 8, 9],['a','c','e','f'])
print(sr2 - sr1)

输出:

a    0.0
b    NaN
c    2.0
d    NaN
e    NaN
f    NaN
dtype: float64

pandas中Series的常用属性

名称属性
axes以列表的形式返回所有行索引标签。
dtype返回对象的数据类型。
empty返回一个空的 Series 对象。
ndim返回输入数据的维数。
size返回输入数据的元素数量。
values以 ndarray 的形式返回 Series 对象。
index返回一个RangeIndex对象,用来描述索引的取值范围。
  • values : 以 ndarray 的形式返回 Series 对象。
import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(6))
print(s)
print("输出series中数据")
print(s.values)

输出:

0   -0.502100
1    0.696194
2   -0.982063
3    0.416430
4   -1.384514
5    0.444303
dtype: float64
输出series中数据
[-0.50210028  0.69619407 -0.98206327  0.41642976 -1.38451433  0.44430257]
  • axes: 以列表的形式返回所有行索引标签。
import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5))
print ("The axes are:")
print(s.axes)

输出:

The axes are:
[RangeIndex(start=0, stop=5, step=1)]

Series常用方法

1)统计方法
2)追加Series和插入单个值

类似list,通过append方法能够在原Series上插入(追加)新的Series。若只在原Series上插入单个值,则采用赋值方式即可

import pandas as pd
list1 = [0, 1, 2, 3, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
series1 = pd.Series([4, 5], index = ['f', 'g'])
# 追加Series
print('在series插入series1后为:\n', series.append(series1))

输出:

在series插入series1后为:
a    3
b    1
c    2
d    3
e    4
f    4
g    5
dtype: int64
3)删除Series元素
import pandas as pd
list1 = [0, 1, 2, 3, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
series.drop('e', inplace = True)
print( series)

输出:

a    0
b    1
c    2
d    3
dtype: int64
4)unique()与nunique()的用法

unique()返回去重后的元素值

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.unique())

输出:

[0 1 2 4]

nunique()返回去重后的元素个数

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.nunique())

输出:

4
value_counts(),求不同元素的个数
import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.value_counts())

输出:

4    2
0    1
1    1
2    1
dtype: int64

list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’])
print(series.nunique())


输出:

```python
4
value_counts(),求不同元素的个数
import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.value_counts())

输出:

4    2
0    1
1    1
2    1
dtype: int64
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这篇笔记主要介绍了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模块的基础内容,还有很多高级用法和技巧需要进一步学习和掌握。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值