欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas中提取DataFrame某些列的一些方法

 更新時(shí)間:2022年06月06日 10:18:45   作者:寧萌Julie  
dataframe是pandas包的重要對(duì)象,熟練掌握dataframe的基本操作是很有必要的,下面這篇文章主要給大家介紹了關(guān)于pandas中提取DataFrame某些列的一些方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在處理表格型數(shù)據(jù)時(shí),一行數(shù)據(jù)是一個(gè) sample,列就是待提取的特征。怎么選取其中的一些列呢?本文分享一些方法。

使用如下的數(shù)據(jù)作為例子:

import pandas as pd
data = pd.DataFrame({'Name':['Anna', 'Betty', 'Richard', 'Philip','Paul'],
        'course1':[85,83,90,84,85],
        'course2':[90,85,83,88,84],
        'course3':[82,86,81,91,85],
        'fruit':['apple','banana','apple','orange','peach'],
        'sport':['basketball', 'volleyball', 'football', 'basketball','baseball']},
         index=[1,2,3,4,5])
  
df = pd.DataFrame(data)
df
 Namecourse1course2course3fruitsport
1Anna859082applebasketball
2Betty838586bananavolleyball
3Richard908381applefootball
4Philip848891orangebasketball
5Paul858485peachbaseball

方法一:df[columns]

先看最簡(jiǎn)單的情況。輸入列名,選擇一列。例如:

df['course2']
1    90
2    85
3    83
4    88
5    84
Name: course2, dtype: int64

df[column list]:選擇列。例如:

df[['course2','fruit']]
 course2fruit
190apple
285banana
383apple
488orange
584peach

或者以 column list (list 變量)的形式導(dǎo)入到 df[ ] 中,例如:

select_cols=['course2','fruit']
df[select_cols]
 course2fruit
190apple
285banana
383apple
488orange
584peach

可以用 column list=df.columns[start:end] 的方式選擇連續(xù)列,start 和 end 均為數(shù)字,不包括 end 列。例如:

select_cols=df.columns[1:4]
df[select_cols]
 course1course2course3
1859082
2838586
3908381
4848891
5858485

你可能注意到,其中有 3 列的名字相近:‘course1’,‘course2’,‘course3’。怎么提取這三列呢?這里分享在Kaggle 上看到 一位大神使用的 list comprehension方法。

select_cols=[c for c in df.columns if 'course' in c]
df[select_cols]
 course1course2course3
1859082
2838586
3908381
4848891
5858485

但是,如果你想輸入df['course1':'course3'] 來索引連續(xù)列,就會(huì)報(bào)錯(cuò)。而輸入數(shù)字索引df[1:3]時(shí),結(jié)果不再是列索引,而是行索引,如下所示:

df[1:3]
 Namecourse1course2course3fruitsport
2Betty838586bananavolleyball
3Richard908381applefootball

以下兩種方法 df.loc[]和df.iloc[]就可以解決這個(gè)問題,可以明確行或列索引。還可以同時(shí)取多行和多列。

方法二:df.loc[]:用 label (行名或列名)做索引。

輸入 column_list 選擇多列 [:, column_list],括號(hào)中第一個(gè): 表示選擇全部行。例如:

df.loc[:,['course2','fruit']]
 course2fruit
190apple
285banana
383apple
488orange
584peach

選擇連續(xù)多列 [:,start_col: end_col],注意:包括 end_col。例如:

df.loc[:,'course2':'fruit']
 course2course3fruit
19082apple
28586banana
38381apple
48891orange
58485peach

選擇多行和多列,例如:

df.loc[1:3,'course2':'fruit']
 course2course3fruit
19082apple
28586banana
38381apple

與 df[ ]類似,df.loc[ ]括號(hào)內(nèi)也可以輸入判斷語句,結(jié)果是對(duì)行做篩選。例如:

df.loc[df['course1']>84]
#注:輸入df[df['course1']>84],輸出結(jié)果相同
 Namecourse1course2course3fruitsport
1Anna859082applebasketball
3Richard908381applefootball
5Paul858485peachbaseball

方法三:df.iloc[]: i 表示 integer,用 integer location(行或列的整數(shù)位置,從0開始)做索引。

df.iloc與df.loc用法類似,只是索引項(xiàng)不同。

df.iloc[:,[2,4]]
 course2fruit
190apple
285banana
383apple
488orange
584peach

選擇連續(xù)多列:df.iloc[:, start_ix:end_ix],注意:不包括 end_ix。例如:

df.iloc[:,2:5]
 course2course3fruit
19082apple
28586banana
38381apple
48891orange
58485peach

選擇多行與多列,例如:

df.iloc[1:3,[2,4]]
 course2fruit
285banana
383apple

與 df.loc[] 不同,df.iloc[] 括號(hào)內(nèi)不可以輸入判斷語句。

補(bǔ)充:提取所有列名中包含“線索”、“瀏覽”字段的列

import pandas as pd
 
path = 'F:\python_projects\python_learning\ershouche.csv'
df = pd.read_csv(open(path), index_col=0)
df = df.fillna(0)  # 填充空值后需賦值
print(df.describe())
 
columns = df.columns.values.tolist()  # 獲取列名列表,注意values,tolist的使用
col_xian = []  # 存儲(chǔ)包含‘線索'字段的列名
for i in columns:
    if '線索' in i:
        col_xian.append(i)
 
col_liu = [] # 存儲(chǔ)包含‘瀏覽'字段的列名
for i in columns:
    if '瀏覽' in i:
        col_liu.append(i)
 
df_xian = df[col_xian]  # 根據(jù)列名取列
df_liu = df[col_liu]

參考:

1.如何選取dataframe的多列-教程:https://www.geeksforgeeks.org/how-to-select-multiple-columns-in-a-pandas-dataframe/

2.用 list comprehension 選擇多列:https://www.kaggle.com/code/robikscube/ieee-fraud-detection-first-look-and-eda/notebook

3.df.loc 與 df.iloc 的比較:https://stackoverflow.com/questions/31593201/how-are-iloc-and-loc-different

總結(jié)

到此這篇關(guān)于pandas中提取DataFrame某些列的文章就介紹到這了,更多相關(guān)pandas提取DataFrame某些列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django 自定義過濾器(filter)處理較為復(fù)雜的變量方法

    django 自定義過濾器(filter)處理較為復(fù)雜的變量方法

    今天小編就為大家分享一篇django 自定義過濾器(filter)處理較為復(fù)雜的變量方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 淺談dataframe中更改列屬性的方法

    淺談dataframe中更改列屬性的方法

    今天小編就為大家分享一篇淺談dataframe中更改列屬性的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中使用asyncio 封裝文件讀寫

    Python中使用asyncio 封裝文件讀寫

    本文主要給大家簡(jiǎn)單講解如何用 asyncio.Future 對(duì)象來封裝文件的異步讀寫。有需要的小伙伴可以參考下
    2016-09-09
  • 利用Python實(shí)現(xiàn)命令行版的火車票查看器

    利用Python實(shí)現(xiàn)命令行版的火車票查看器

    當(dāng)你想查詢一下火車票信息的時(shí)候,你還在上12306官網(wǎng)嗎?或是打開你手機(jī)里的APP?下面讓我們來用Python寫一個(gè)命令行版的火車票查看器, 只要在命令行敲一行命令就能獲得你想要的火車票信息!如果你剛掌握了Python基礎(chǔ),這將是個(gè)不錯(cuò)的小練習(xí)。
    2016-08-08
  • pycharm遠(yuǎn)程調(diào)試openstack的圖文教程

    pycharm遠(yuǎn)程調(diào)試openstack的圖文教程

    這篇文章主要為大家詳細(xì)介紹了pycharm遠(yuǎn)程調(diào)試openstack的圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • python使用yield壓平嵌套字典的超簡(jiǎn)單方法

    python使用yield壓平嵌套字典的超簡(jiǎn)單方法

    這篇文章主要給大家介紹了關(guān)于python使用yield壓平嵌套字典的超簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python輸入圓半徑,計(jì)算圓周長(zhǎng)和面積的實(shí)現(xiàn)方式

    Python輸入圓半徑,計(jì)算圓周長(zhǎng)和面積的實(shí)現(xiàn)方式

    這篇文章主要介紹了Python輸入圓半徑,計(jì)算圓周長(zhǎng)和面積的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python列表中remove()函數(shù)的使用方法詳解

    python列表中remove()函數(shù)的使用方法詳解

    這篇文章主要給大家介紹了關(guān)于python列表中remove()函數(shù)的使用,以及Python列表的remove方法的注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • python數(shù)據(jù)分析之公交IC卡刷卡分析

    python數(shù)據(jù)分析之公交IC卡刷卡分析

    這篇文章主要介紹了python數(shù)據(jù)分析之公交IC卡,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 怎么解決pycharm license Acti的方法

    怎么解決pycharm license Acti的方法

    這篇文章主要介紹了怎么解決pycharm license Acti的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論