当前位置:   article > 正文

Pandas常用指令_data = df[['col1', 'col2']]

data = df[['col1', 'col2']]

astype

        astype的作用是转换数据类型,astype是没办法直接在原df上进行修改的,只能通过赋值的形式将原有的df进行覆盖,即df = df.astype(dtype)

        astype的基本语法

DataFrame.astype(dtype, copy=True, errors='raise')

        dtype参数指定将数据类型转换为的目标类型,如str,float,int等等。

        copy参数表示是否创建数据的副本,默认为 `True`。

        errors参数定义如何处理转换过程中的错误,默认为 `'raise'`,表示遇到错误时引发异常。 

        

        常用的形式就是直接

DataFrame.astype(dtype)

        下面介绍常用的几个操作

数据集

  1. data = {
  2. 'col1': [10, 20, 30],
  3. 'col2': [0.1, 0.2, 0.3],
  4. 'col3': ['A', 'B', 'C'],
  5. 'col4': [True, False, True]
  6. }
  7. df = pd.DataFrame(data)

                

将整个df转变数据类型

        df = df.astype(str)

        将整个df转为字符串的类型,object 是泛指的对象数据类型,它可以包括字符串、Python 对象和其他不可变对象

                

将df某一列转变数据类型

        df['col1'] = df['col1'].astype(float)

        能够将【col1】这列原本的int数据类型,转为float类型

        

将df某多列转变数据类型

        df[['col1','col2']] = df[['col1','col2']].astype(float)

        


concat

        concat的作用是将多个dataframe对象进行水平或垂直合并       

         concat的基本语法

pd.concat(objs, axis=0, join='outer', ignore_index=False)

        objs: 必需参数,表示要拼接的对象(例如,DataFrame,Series 或 Panel)的序列、映射或 DataFrames 列表。
        axis: 可选参数,默认为 0。指定拼接的轴方向,0 表示按行拼接,1 表示按列拼接。
        join: 可选参数,默认为 'outer'。指定如何处理拼接后的索引。
                'outer':保留所有的索引。
                'inner':只保留共有的索引。
        ignore_index: 可选参数,默认为 False。指定是否重置索引。
                True:重置拼接后的轴上的索引。
                False:保留原始索引。

常用的形式就是直接

pd.concat(objs)

数据集

  1. df1 = pd.DataFrame({'A': [1, 2, 3],
  2. 'B': [4, 5, 6]})
  3. df2 = pd.DataFrame({'A': ["df2.1", "df3.1", "df4.1"],
  4. 'B': ["df2.2", "df3.2", "df4.2"]})

         

axis(默认为0)

        result = pd.concat([df1, df2])

        

        result = pd.concat([df1, df2],axis=1)

        

ignore_index(默认为False)

        result = pd.concat([df1, df2])

        

        result = pd.concat([df1, df2],ignore_index=True)

        


to_datetime

        to_datetime的作用是将字符串的时间格式转为对应的时间对象,to_datetime是没办法直接在原df上进行修改的,只能通过赋值的形式将原有的df进行覆盖,即df = df.to_datetime(arg)

          to_datetime的基本语法

pd.to_datetime(arg, format=None, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True)

        arg:必需参数,指定要转换的日期或时间对象。可以是字符串、整数、浮点数、列表、Series、DataFrame 等对象。
        format:可选参数,用于指定输入日期或时间字符串的格式。如果未提供,则尝试自动推断格式。常见的格式代码如 %Y(4 位年份)、%m(月份)等。详细的格式代码列表可以在官方文档中找到。
        errors:可选参数,指定如何处理转换错误。
        'raise':默认值,遇到转换错误时抛出异常。
        'ignore':忽略转换错误,不会抛出异常,返回原始对象。
        'coerce':将转换错误的值设为 NaT(不可用时间)。
        其他参数:dayfirst、yearfirst、utc、box、exact、unit、infer_datetime_format、origin、cache 等可以进一步调整转换行为和性能,根据需要进行设置。

常用的形式就是直接

pd.to_datetime(df['时间'])

数据集

df = pd.DataFrame({'时间': ['2022-01-01 09:00:00', '2022-01-02 10:30:00']})

格式转换

pd.to_datetime(df['时间'], format='%Y-%m-%d %H:%M:%S')

  1. df['时间'] = pd.to_datetime(df['时间'], format='%Y-%m-%d %H:%M:%S')
  2. df.to_excel('output.xlsx', index=False)

 


insert

        插入一整列数据 df.insert(loc,column,value,allow_duplicates=True)

        参数介绍

                loc:要插入的位置,列数索引,从0开始的整数。

                column:要插入的列的名称。

                value:要插入的数据,可以是一个常数、一个数组或一个Series。

                allow_duplicates:是否允许插入重复的列名,默认为False。

        注意

                插入的位置是会将原本列的位置以及后面的列,进行后退

                例如已有 0 1 两列的数据。如果插入的位置是1,则插入后的效果是【0  插入的列  1】

        几个常用的位置

                在首列插入:0

                在某列之前插入:  df.columns.get_loc("col2")

                在某列之后插入 : df.columns.get_loc("col2") + 1 

                在最后一列插入:  len(df.columns)

        将已有的列进行位置的更改

                 col = concat_df.pop("总加购数")    

                 concat_df.insert(concat_df.columns.get_loc("总费用"),"总加购数",col)

                先将【总加购数】这列的数据拿到,在通过insert放到指定位置,实现位置的更改


map(未写完,示例内容未添加)

        map一个常用的用法:使用map(字典)

        作用是根据字典的键值进行匹配替换,能够将对应位置的键替换为新的值

        df.map(字典)

  1. import pandas as pd
  2. goods_id_dict = {}
  3. df = pd.read_excel("文件路径")
  4. df.insert(len(df.columns), "查看详情", df["商品=ID"].map({k:v for k, v in goods_id_dict.items()}))

        接收一个字典类型的参数,键为需要替换的元素,值为替换后的元素

       df.insert(len(df.columns), "查看详情", df["商品ID"].map({k:v for k, v in goods_id_dict.items()}))

这行代码的作用是  在df的最后一行插入一列  列名为【查看详情】的数据,这列数据的内容就是

根据匹配df【商品ID】这列的每一行的值,与goods_id_dict字典的键相匹配,匹配成功则为字典的值

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/937762
推荐阅读
相关标签
  

闽ICP备14008679号