pandas的read_csv 的参数与 DataFrame

            <ul>

  • 对 DataFrame 对象迭代得到的是其各个属性列的列名,自然为 list 类型;
  • 1. 从文件读取数据返回 data frame

    pandas.read_csv参数详解

    • read_csvread_excel

      df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/'
                       'breast-cancer-wisconsin/wdbc.data', header=None)
                              # df: data frame
                              # type(df): <class 'pandas.core.frame.DataFrame'>
         
         
      • 1
      • 2
      • 3
      • 4
    • header:表头,默认不为空(为 0,也即将第一行视为表头)。如果我们要读取的文件,直接就是数据,没有所谓的表头。就需指定 header=None,否则将以文件的第一行作为 df.columns。指定 header=None,df.columns 返回的是列索引,如一个三列的数据:

      Int64Index([0, 1, 2], dtype='int64')
         
         
      • 1
    • parse_datas:指明日期列,为字符串构成的 list;

    • thousands : str, default None,千分位分割符,如“,”或者“.”

    2. pandas 基本数据结构:Series 与 DataFrame

    from pandas import Series, DataFrame

    • Series 最重要的一个功能在于:它在算术运算中会自动对齐不同索引的数据;
    X, y = df.values[:, 2:], df.values[:, 1]
                    # df.values 的类型为 numpy.ndarray
    # 也可以
    X, y = df.loc[:, 2:].values, df.loc[:, 1].values
     
     
    • 1
    • 2
    • 3
    • 4

    3. dataframe 与 numpy 下的多维数组的转换

    • dataframe ⇒ numpy.ndarray:df.ax_matrix()

    4. 基本成员函数

    • df.dtypes:会按列给出各个列的数据类型;
    • df.columns,获取列名,可直接通过.的形式进行索引

      比如一个 df.columns 的返回值为:

      Index([u'dt', u'kind', u'value'], dtype='object')
         
         
      • 1

      可直接索引的含义在于,使用 df.dt 或者 df.kind 或者 df.value 进行索引,获取某列的全部值( 注,pandas 的特点,以列进行索引和修改)。同时索引多个列以构成一个新的表格,

      df[['dt', 'value']]            # 这样得到的仍然是 dataframe
         
         
      • 1

      支持[]的索引方式,但关键字必须是 list 的形式(['dt', 'value']),而不可以是 tuple

    • df.assign():指定新的列(如果列名已存在,则替换;如果不存在,在添加该列),返回一个新的 DataFrame,不对原始的 DataFrame 进行修改;

      • 当然其也可以接收一个 lambda 型的函数对象,该函数对象接收的参数则是原始的 dataframe;
      
      # 接收 lambda 型函数对象,
      
      >> df = DataFrame({'A':range(1, 6), 'B':np.random.randn(5)})
      >> df.assign(ln_A=lambda x: np.log(x.A))
      
          A         B      ln_A
      0   1  0.456539  0.000000
      1   2  1.022736  0.693147
      2   3 -0.158207  1.098612
      3   4  0.951304  1.386294
      4   5 -1.024661  1.609438
                      # 此时 df 本身并未发生任何改变;
      >> df.assign(A = range(21, 26))
          A         B
      0  21  0.456539
      1  22  1.022736
      2  23 -0.158207
      3  24  0.951304
      4  25 -1.024661
         
         
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      pandas.DataFrame.assign

    • set_index():将某列设置为索引列;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值