一、pandas的数据结构分析
Pandas 中有两个主要的数据结构:Series 和DataFrame 。
Series 是一维的数据结构,DataFrame是二维的、表格型的数据结构。
Series
Series 是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。
Pandas 的Series 类对象可以使用以下构造方法创建:
class pandas.Series (data = None ,index = None ,dtype = None ,
name = None ,copy = False ,fastpath = False )
data:表示传入的数据。
index:表示索引,唯一且与数据长度相等,默认会自动创建一个从0~N 的整数索引。
通过传入一个列表来创建一个Series 类对象
创建Series 类对象
ser_obj = pd.Series([1, 2, 3, 4, 5 ])
创建Series 类对象,并指定索引
ser_obj = pd.Series([1, 2, 3, 4, 5],
index =[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])
使用dict 进行构建。
year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}
ser_obj2 = pd.Series(year_data )
为了能方便地操作Series 对象中的索引和数据,所以该对象提供了两个属性index 和values 分别进行获取。
获取ser_obj 的索引
ser_obj.index
获取ser_obj 的数据
ser_obj.values
直接使用索引来获取数据。
获取位置索引3 对应的数据
ser_obj[3]
DataFrame
DataFrame 是一个类似于二维数组或表格(如excel )的对象,它每列的数据可以是不同的数据类型。
Pandas的DataFrame 类对象可以使用以下构造方法创建:
pandas.DataFrame (data = None ,index = None ,columns = None ,
dtype = None ,copy = False )
index:表示行标签。若不设置该参数,则默认会自动创建一个从0~N 的整数索引。
columns:列标签。
通过传入数组来创建DataFrame 类对象:
创建数组
demo_arr = np.array([[‘a’, ‘b’, ‘c’],
[‘d’, ‘e’, ‘f ‘]])
基于数组创建DataFrame 对象
df_obj = pd.DataFrame(demo_arr )
在创建DataFrame 类对象时,如果为其指定了列索引,则DataFrame 的列会按照指定索引的顺序进行排列。
df_obj = pd.DataFrame(demo_arr, columns=[‘No1’, ‘No2’, ‘No3’])
使用列索引的方式来获取一列数据,返回的结果是一个Series 对象。
通过列索引的方式获取一列数据
element = df_obj[‘No2’]
查看返回结果的类型
type(element)
使用访问属性的方式来获取一列数据,返回的结果是一个Series 对象。
通过属性获取列数据
element =df_obj.No2
查看返回结果的类型
type(element)
为DataFrame 增加一列数据,则可以通过给列索引或者列名称赋值的方式实现。
增加No4 一列数据
df_obj [‘No4’] = [‘g’, ‘h ‘
删除某一列数据,可以使用del 语句实现
删除No3 一列数据
del df_obj[‘No3 ‘]
二、Pandas索引操作及高级索引
Pandas 中的索引都是Index 类对象,又称为索引对象,该对象是不可以进行修改的,以保障数据的安全。
Pandas 中提供了一个重要的方法是reindex(),该方法的作用是对原索引和新索引进行匹配,也就是说,新索引含有原索引的数据,而原索引数据按照新索引排序。(如果新索引中没有原索引数据,那么程序不仅不会报错,而且会添加新的索引,并将值填充为NaN 或者使用fill_vlues()填充其他值。)
reindex()方法的语法格式如下:
DataFrame.reindex (labels = None ,index = None ,
columns = None ,axis = None ,method = None ,
copy = True ,level = None ,fill_value = nan ,limit = None ,tolerance = None )
三、算术运算与数据对齐
Pandas 执行算术运算时,会先按照索引进行对齐,对齐以后再进行相应的运算,没有对齐的位置会用NaN 进行补齐。
四、数据排序
Pandas 中按索引排序使用的是sort_index()方法,该方法可以用行索引或者列索引进行排序。
sort_index (axis = 0 ,level = None ,ascending =True ,inplace = False ,kind =’ quicksort ‘,na_position =’last’,sort_remaining = True )
按索引对Series 进行分别排序
ser_obj = pd.Series(range(10, 15), index=[5, 3, 1, 3, 2])
按索引进行升序排列
ser_obj.sort_index()
按索引进行降序排列
ser_obj.sort_index(ascending = False)
按索引对DataFrame 进行分别排序
df_obj = pd.DataFrame(np.arange(9).reshape(3, 3),
index =[4, 3, 5])
按行索引升序排列
df_obj.sort_index ()
按行索引降序排列
df_obj.sort_index(ascending=False )
Pandas 中用来按值排序的方法为sort_values(),该方法的语法格式如下。
sort_values(by,axis=0 , ascending=True, inplace=False, kind=’quicksort ‘,na_position =’last’)
按值的大小对Series 进行排序
ser_obj = pd.Series([4, np.nan, 6, np.nan, -3, 2])
按值升序排列
ser_obj.sort_values()
Original: https://blog.csdn.net/qq_61376769/article/details/123394973
Author: Yyyyy.852
Title: 数据分析工具pandas
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751885/
转载文章受原作者版权保护。转载请注明原作者出处!