Series和pandas讲解

本文详细探讨了Pandas库中的Series数据结构,包括其创建、基本操作、数据访问和数据处理方法,旨在帮助数据分析者更好地理解和运用Series进行数据清洗和分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                            第二节

1、Series的属性与方法:
    Series中一般常用的参数就是data、index,其中的data就是我们处理的数据,index就是这个数据的行索引
    Series中的函数一般有index、values以及items,values、index、items返回的对象分别是List、Index、
    Zip类型的数据,为了方便我们使用和观察数据,可以使用series.index.tolist()和list(series.items())
    方法转化成List类型。用法如下:
    ***
        from pandas import Series
        name=["小明","小花","小东","小李"]
        S1=Series(data=name)
        print(S1)
        print(S1.values)
        print(S1.index.tolist())    #这里的tolist函数就是把index函数生成的对象转换为列表
        print(list(S1.items()))     #这里的list同样是把zip对象转换为列表
    ***

    Series中的数据除了可以通过索引进行获取,还可以通过切片操作进行获取元素,而且如果一次性获取多个元素
    还可以把这些元素的索引直接放在列表中进行多个元素的获取

    ***
        from pandas import Series
        emp=['001','002','003','004','005','006']
        name=['亚瑟', '后裔','小乔','哪吒' ,'虞姬','王昭君']
        series = Series(data=name,index=emp)
        # 使用索引值获取单个数据
        print(series['001'])
        # 使用索引值获取多个不连续的数据
        print('索引下标',series[['002','004']])
        # 使用切片获取连续的数据
        print('索引切片',series['001':'004'])
    ***

    除此之外Series对象可以直接使用循环遍历出里面的值,也可以使用Series.keys()获取该对象的索引,同时也可以通过
    Series对象中的items()函数把里面的索引和值找出来


2、DataFrame中的数据是按着行和列进行排列的,可以根据行和列进行选择、遍历和修改
    ***
    df_dict = {
   'name':['ZhangSan','LiSi','WangWu','ZhaoLiu'],
   'age':['18','20','19','22'],
   'weight':['50','55','60','80']
    }
    df = pd.DataFrame(data=df_dict,index=['001','002','003','004'])
    ***
    (1)查看DataFrame中数据的维度:
        weidu=df.ndim
    (2)获取DataFrame的行数和列数:
        hanglie=df.shape       注:返回值是一个元组,表示的就是行数和列数
    (3)获取行索引和列索引:
        print(df.index.tolist())————返回行索引
        print(df.columns.tolist())————返回列索引
    (4)获取DataFrame数据中的前面几行或者是后面几行可以通过切片或者是函数:
        print(df[0:2])———————————————用切片获取前2行的数据
        print(df.head(2))————————————用函数获取前2行的数据
        print(df[索引的长度-2::])————用切片获取后2行的数据
        print(df.tail(2))—————————————用函数获取后2行的数据

        【神仙的自我修养】
        # df[]不支持直接输入标签索引获取行数据,例如:df['001']
        # 这种方式可以获取一列数据,列如:df['name']
        # 如果想获取多行里面的某几列可写成:df[行][列],例如:df[1:3][['name','age']],将列索引值放
        到同一个列表中,再将列表放到第二个方括号中

    (5)获取数据:
        通过标签索引来获取数据,即使用loc函数来获取数据,用法:
            df.loc(行,列)

            5.1、获取某一行某一列的数据
                print(df.loc['001','name'])
            5.2、某一行多列的数据
                print(df.loc['001',['name','weight']])
            5.3、一行所有列
                print(df.loc['001',:])
            5.4、选择间隔的多行多列
                print(df.loc[['001','003'],['name','weight']])
            5.5、选择连续的多行和间隔的多列
                print(df.loc['001':'003','name':'weight'])

        也可以直接通过位置索引来获取数据,即使用iloc函数获取数据,用法:
            df.iloc(行,列)

            5.6、取一行
                print(df.iloc[1])
            5.7、取连续多行
                print(df.iloc[0:2])
            5.8、取间断的多行
                print(df.iloc[[0,2],:])
            5.9、取某一列
                print(df.iloc[:,1])
            5.10、某一个值
                print(df.iloc[1,0])

        注:loc函数和iloc函数在进行切片操作时对于切片终点的取值是不一样的,loc函数使用即根据标签索引是包含终点数据的,
            而iloc函数即使用位置索引获取数据是不包含终点数据,和列表的切片类似

    (6)按行/列遍历数据
        按行遍历
        iterrows(): 按行遍历,将DataFrame的每一行转化为(index, Series)对。index为行索引值,Series为该行对应的数据。
            for index,row_data in df.iterrows():
                print(index,row_data)

        按列遍历
        iteritems():按列遍历,将DataFrame的每一列转化为(column, Series)对。column为列索引的值,Series为该列对应的数据。
            for col,col_data in df.iteritems():
                print(col)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值