pandas —— pd read csv 与df to csv

                       
  • 对 DataFrame 对象迭代得到的是其各个属性列的列名,自然为 list 类型;

0. read_csv 与 df.to_csv

  • df.to_csv
    • na_rep=‘NA’:缺失值替换为NA
    • header=1/0:是否保存表头;
    • index=1/0:是否保存行的索引;

1. 从文件读取数据返回 data frame

<a href=“https://www.cnblogs.com/datablog/p/6127000.html”, target="_blank">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
  • index_col:认定原始 csv 文件的第几列(从0开始计数)为索引列(也即从1开始编号,表示每一行样本的编号)

    • 一般会指定 index_col=0,表示第0列为索引列
    • index_col 指定的列将不会作为 DataFrame 的一列进行返回;
  • 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()
  • df.values

4. 基本成员函数

  • df.dtypes:会按列给出各个列的数据类型;

  • df.columns,获取列名,可直接通过.的形式进行索引

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

    扫描二维码关注公众号,回复: 5156421 查看本文章
    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_A0   1  0.456539  0.0000001   2  1.022736  0.6931472   3 -0.158207  1.0986123   4  0.951304  1.3862944   5 -1.024661  1.609438    # 此时 df 本身并未发生任何改变;>> df.assign(A = range(21, 26))    A         B0  21  0.4565391  22  1.0227362  23 -0.1582073  24  0.9513044  25 -1.024661
         
         
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    <a href=“http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.assign.html”, target="_blank">pandas.DataFrame.assign

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

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/qq_43679627/article/details/86775033