Pandas的基本用法

参考官网源码

Pandas的数据结构

  • Series —— DataFrame中的一行

    • Series的构造方法

      pandas.Series(data, index, dtype, name, copy)
      
      	"""
      	data:一组数据
      	index:索引,默认为从0开始的自然数
      	dtype:数据类型,默认会自己判断
      	name:设置名称
      	copy:拷贝数据,默认为 False
      	"""
      
    • 也可通过dict{key: value}创建

      import pandas as pd
      
      
      dic = {key1: value1, key2: value2, key3: value3}
      ds = pd.Series(dic)
      
      
  • DataFrame —— 表格型的数据结构

    • DataFrame的构造方法

      pandas.DataFrame(data, index, columns, dtype, copy)
      
      	"""
      	columns:列标签,默认为RangeIndex(0, 1, 2, …, n) 
      	其余的同Series
      	"""
      
    • 也可通过dict{key: value}创建(无论哪种结构,key总为列标签)

      import pandas as pd
      
      
      data = [{key1: value1, key2: value2}, {key3: value3, key4: value4, key5: value5}]
      df = pd.DataFrame(data)
      
      
      import pandas as pd
      
      
      data = {key1: value1, key2: value2}  # value均为list
      df = pd.DataFrame(data)
      
      
    • loc返回指定数据

      df[col_index]                     # 返回指定列,返回多列用[[...]]
      df.loc[row_index]                 # 返回指定行的数据,返回多行用[[...]]
      df.loc[row_index, col_index]      # 返回指定数据
      

Pandas对csv操作

  • 读取与保存

    import pandas as pd
    
    
    dc = pd.read_csv(file_path)     # 读取csv文件
    df.save_csv(file_path)          # 保存为csv文件
    
    
  • 对读取数据的基本操作

    print(dc.to_string())    # 用于返回DataFrame类型的数据(如果不使用,则输出保留前后5行)
    print(dc.head(n))        # 用于返回前n行数据,默认为5
    print(dc.tail(n))        # 用于返回后n行数据,默认为5
    print(dc.info())         # 返回表格基本信息(类似于数据库列信息)
    

Pandas对json操作

  • 读取json

    import pandas as pd
    
    
    df = pd.read_json(file_path)  # 从文件读取
    df = pd.read_json(url)        # 从url读取
    
    
  • 内嵌的json数据

    col_index1写需要展开的列索引;
    col_index2写需要展示却不在展开内容之内的索引;
    若含多级索引,则col_index1col_index2可以写成[col_1, col_2, col_3]
    col_index用来表示同级索引,col用来表示多级索引,全文同)

    import pandas as pd
    import json
    
    
    # 使用json模块载入数据
    with open('nested_list.json','r') as f:
    	data = json.loads(f.read())
    
    # 展平数据
    df_nested_list = pd.json_normalize(
    	data, 
    	record_path = [col_index1]  # record_path用于展开内嵌JSON数据的列
    	meta=[col_index2]           # 没有包含的元素,可以用meta参数来显示这些元数据
    )
    
    
  • 读取内嵌套数据中的一组数据

    import pandas as pd
    from glom import glom
    
    
    df = pd.read_json(file_path)
    data = df[col_1].apply(lambda row: glom(row, col_2))
    
    

Pandas数据清洗

  • 读取csv时指定空数据的形式

    import pandas as pd	
    
    
    missing_values = ["n/a", "na", "--"]
    dc = pd.read_csv(file_path, na_values = missing_values)
    
    
  • 清除空数据

    DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
    
    	"""
    	axis:默认为0,表示逢空值剔除整行,如果设置参数axis=1表示逢空值去掉整列;
    	how:默认为'any'如果一行(或一列)里任何一个数据有出现NaN就去掉整行,如果设置how='all'一行(或列)都是NaN才去掉这整行;
    	thresh:设置需要多少非空值的数据才可以保留下来的;
    	subset:设置想要检查的列。如果是多个列,可以使用列名的list作为参数;
    	inplace:如果设置 True,修改的是源数据。
    	"""
    
    dc.isnull()                              # 判断各个单元格是否为空
    dc.dropna()                              # 删除包含空数据的行
    dc.drop(col_index, inplace=True)         # 清除某一行
    
  • 内容替换

    dc.fillna(content, inplace = True)       # 替换一些空字为content
    dc.loc[row_index, col_index] = content   # 修改指定数据为content
    dc['Date'] = pd.to_datetime(df['Date'])  # 时间列格式清洗
    
  • 重复数据

    dc.duplicated()                          # 查看哪些行是重复数据
    dc.drop_duplicates(inplace=True)         # 清洗重复数据
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值