• Python pandas dataframe


     dataframe 列类型

    df['客户id'] = df['客户id'].apply(pd.to_numeric)
    df = pd.DataFrame(a, dtype='float')  #示例1
    df = pd.DataFrame(data=d, dtype=np.int8) #示例2
    df = pd.read_csv("somefile.csv", dtype = {'column_name' : str})
    df[['col2','col3']] = df[['col2','col3']].apply(pd.to_numeric)
    df[['two', 'three']] = df[['two', 'three']].astype(float)

        df.dtypes

        type(mydata[0][0])

       维度查看:df.shape
       数据表基本信息(维度、列名称、数据格式、所占空间等):df.info()
       每一列数据的格式:df.dtypes
       某一列格式:df['B'].dtype

    文件操作

    DataFrame 数据的保存和读取

    • df.to_csv 写入到 csv 文件
    • pd.read_csv 读取 csv 文件
    • df.to_json 写入到 json 文件
    • pd.read_json 读取 json 文件
    • df.to_html 写入到 html 文件
    • pd.read_html 读取 html 文件
    • df.to_excel 写入到 excel 文件
    • pd.read_excel 读取 excel 文件

    pandas.DataFrame.to_csv
    将 DataFrame 写入到 csv 文件
        DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True, index=True,
                         index_label=None, mode='w', encoding=None, compression=None, quoting=None, quotechar='"',
                         line_terminator=' ', chunksize=None, tupleize_cols=None, date_format=None, doublequote=True,
                         escapechar=None, decimal='.')

    参数:
        path_or_buf : 文件路径,如果没有指定则将会直接返回字符串的 json
        sep : 输出文件的字段分隔符,默认为 “,”
        na_rep : 用于替换空数据的字符串,默认为''
        float_format : 设置浮点数的格式(几位小数点)
        columns : 要写的列
        header : 是否保存列名,默认为 True ,保存
        index : 是否保存索引,默认为 True ,保存
        index_label : 索引的列标签名

    条件筛选

    单条件筛选

    选取col1列的取值大于n的记录: data[data['col1']>n]
    筛选col1列的取值大于n的记录,但是显示col2,col3列的值: data[['col2','col3']][data['col1']>n]
    选择特定行:使用isin函数根据特定值筛选记录。筛选col1值等于list中元素的记录: data[data.col1.isin(list)]
     
     

    多条件筛选

    可以使用&(并)与| (或)操作符或者特定的函数实现多条件筛选
    使用&筛选col1列的取值大于n,col2列的取值大于m的记录:data[(data['col1'] > n) & (data['col2'] > m)]
    使用numpy的logical_and函数完成同样的功能:data[np.logical_and(data['col1']> n,data['col2']>m)]
     
     

    索引筛选

    切片操作

    使用切片操作选择特定的行: data[n:m]
    传入列名选择特定的列: data[['col1','col2']]
     

    loc函数[行用序号,列用名称]

    当每列已有column name时,用 data ['col1'] 就能选取出一整列数据。如果你知道column names 和index,可以选择 .loc同时进行行列选择: data.loc[index,'colum_names']
     

    iloc函数[行用序号,列用序号]

    使用方法同loc函数,但是不再输入列名,而是输入列的index: data.iloc[row_index,col_index]

     

    ix函数

    ix的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc和iloc的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称: data.ix[n:m,['col1','col2']]
    但是在最新的版本中,ix函数不建议使用
     
     

    at函数

    根据指定行index及列label,快速定位DataFrame的元素,选择列时仅支持列名:data.at[row_index,'column_names']
     
     

    iat函数

    与at的功能相同,只使用索引参数:data.iat[row_index,column_index]

    df.set_index('month')    

    df.set_index(['year','month'])     

    DataFrame.columns = [newName]

    df['Hour'] = pd.to_datetime(df['report_date'])

    df.rename(index = str,column = new_names)

    删除列

    #通过特征选取
    data = data[['age']]

    #通过del 关键字
    del  data['name']

    #通过drop函数
    data.drop(['name'],axis=1, inplace=True)

    #通过pop
    data.pop('name')

     

    df = pd.read_csv(INPUTFILE, encoding = "utf-8")

    df_bio = pd.read_csv(INPUTFILE, encoding = "utf-8", header=None) # header=None, header=0

    显示前几行

    df.head()

    显示后几行

    df.tail()

    删除重复的数据
    isDuplicated=df.duplicated() #判断重复数据记录
    print(isDuplicated)
    0    False
    1    False
    2     True
    3    False
    dtype: bool
    
    #删除重复的数据
    print(df.drop_duplicates()) #删除所有列值相同的记录,index为2的记录行被删除
      col1  col2
    0    a     3
    1    b     2
    3    c     2
    
    print(df.drop_duplicates(['col1'])) #删除col1列值相同的记录,index为2的记录行被删除
      col1  col2
    0    a     3
    1    b     2
    3    c     2
    
    print(df.drop_duplicates(['col2'])) #删除col2列值相同的记录,index为2和3的记录行被删除
      col1  col2
    0    a     3
    1    b     2
    
    print(df.drop_duplicates(['col1','col2'])) #删除指定列(col1和col2)值相同的记录,index为2的记录行被删除
      col1  col2
    0    a     3
    1    b     2
    3    c     2

    df 某一列字母转大写小写
    df['列名'] = df['列名'].str.upper()

    df['列名'] = df['列名'].str.lower()

    REF

    https://www.cnblogs.com/aro7/p/9748202.html

    https://www.cnblogs.com/hankleo/p/11462532.html

  • 相关阅读:
    怎么分辨是eclipse还是 android studio开发的
    一个帖子学会Android开发四大组件
    Android Studio ADB响应失败解决方法
    500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
    理解 with递归调用 Sqlserver 树查询
    SQLServer树查询
    数字证书原理【转】
    linux 基础命令
    项目经验分享[转自min.jiang]
    ios
  • 原文地址:https://www.cnblogs.com/emanlee/p/14381168.html
Copyright © 2020-2023  润新知