pandas刪除列,pandas —— pd.read_csv 與df.to_csv

 2023-11-18 阅读 24 评论 0

摘要:對 DataFrame 對象迭代得到的是其各個屬性列的列名,自然為 list 類型; 0. read_csv 與 df.to_csv df.to_csv na_rep=‘NA’:缺失值替換為NAheader=1/0:是否保存表頭;index=1/0:是否保存行的索引; 1. 從文件讀取
  • 對 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'>
    
  • header:表頭,默認不為空(為 0,也即將第一行視為表頭)。如果我們要讀取的文件,直接就是數據,沒有所謂的表頭。就需指定 header=None,否則將以文件的第一行作為 df.columns。指定 header=None,df.columns 返回的是列索引,如一個三列的數據:

    Int64Index([0, 1, 2], dtype='int64')
    
  • index_col:認定原始 csv 文件的第幾列(從0開始計數)為索引列(也即從1開始編號,表示每一行樣本的編號)

    • 一般會指定 index_col=0,表示第0列為索引列
    • index_col 指定的列將不會作為 DataFrame 的一列進行返回;
  • parse_datas:指明日期列,為字符串構成的 list;

  • pandas刪除列,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

3. dataframe 與 numpy 下的多維數組的轉換

dataframe ? numpy.ndarray

  • df.ax_matrix()
  • df.values

4. 基本成員函數

  • df.dtypes:會按列給出各個列的數據類型;

  • df.columns,獲取列名,可直接通過.的形式進行索引

    比如一個 df.columns 的返回值為:

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

    pd.read_csv。可直接索引的含義在于,使用 df.dt 或者 df.kind 或者 df.value 進行索引,獲取某列的全部值( 注,pandas 的特點,以列進行索引和修改)。同時索引多個列以構成一個新的表格,

    df[['dt', 'value']]            # 這樣得到的仍然是 dataframe
    

    支持[]的索引方式,但關鍵字必須是 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
    

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

  • set_index():將某列設置為索引列;

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/176611.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息