日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python的数据科学函数包(二)——pandas(series dataframe)(loc iloc ix)(csv文件)

發布時間:2023/12/14 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python的数据科学函数包(二)——pandas(series dataframe)(loc iloc ix)(csv文件) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pandas

1、pandas數據的存儲相對來說比較簡單,它就只有兩種非常重要的數據類型,一種叫series,一種叫dataframe

? ? ?series是指那些一維的數據,dataframe是指那些二維的數據。也就是說任何一個datafarame其實是好多個series羅列出來的

2、讀取csv數據

不只可以用來讀excel,如果普通的文件想讀成列形式的也可以用它

train_df = pd.read_csv('train.csv') train_df.head()

默認是header=0,0,ji 表示第一行為標題行

header=None,即指明原始文件數據沒有列索引,這樣read_csv會自動加上列索引,除非你給定列索引的名字

例如,這是數據集

當train = pd.read_csv(train_path),train是

此時,train[0]就是第一列,train[1]就是第2列

當train = pd.read_csv(train_path, header=0),train是


train = pd.read_csv(train_path,header=None), train是

還可以在pd.read_csv()的時候,規定列名

train = pd.read_csv(train_path,names=COLUMN_NAMES,header=0)

COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']train = pd.read_csv(train_path,names=COLUMN_NAMES,header=0)

當header=0表示第一行為標題行,又規定了names的時候,標題行就被覆蓋了

head()

.head()

會直接輸出數據(默認是前5行)

print(X.head()) 和 print(X)的結果是一樣的

3. 查看csv數據大小

train_df.shape

4. 讀取csv數據轉為numpy 數組

import pandas as pdtrain = pd.read_csv('train.csv') train = train.values.tolist()

5、pd.Series(data,index)

pd.DataFrame(data,index,columns)

6、做數據科學的時候,往往把feature放在列上,每一列叫做一個feature
? ? ? ? 每一行叫做一個observation

像不同的列記錄所有人的身高、所有人的體重,所有人的收入,而每一行是一個不同的人

并且如果直接引用的話,會默認選擇列

若要選擇行? df.loc('A')

7. 行列選取

①行(列)選取:df[]。

單維度選取,這種情況一次只能選取行或者列

iris數據集

選取行

#選取0-10行 df = pd.read_csv('dataset/iris.data', header=None) y = df[0:10] print(y)#選取第3行 y = df[3:4] print(y)

注意如果寫作y = df[3],這是在選第3列

選取列

#選取3列 df = pd.read_csv('dataset/iris.data', header=None) y = df[3] print(y)#選取第2列,第4列 y = df[[2,4]] print(y)#沒法一次選取多個列

②區域選取(多維選取):df.loc[],df.iloc[],df.ix[]。

這種方式可以同時為多個維度設置篩選條件。

pandas以類似字典的方式來獲取某一列的值,比如df[‘A’],這會得到df的A列。如果我們對某一行感興趣呢?這個時候有兩種方法,一種是iloc方法,另一種方法是loc方法。loc是指location的意思,iloc中的i是指integer

loc是根據index來索引,比如下邊的df定義了一個index,那么loc就根據這個index來索引對應的行。

iloc并不是根據index來索引,而是根據行號來索引,行號從0開始,逐次加1。

8、添加列

直接用名稱賦值即可

刪除列 df.drop('new',axis)? ? ? ? ?

axis=0是指行, axis=1是指列的維度

但是這樣刪除只是返回一個臨時的結果,實際df中并沒有刪除列,這是相當于一個double check的機制。可以不在原數據進行操作,df2=df.drop('new',axis)? ? ?

如果的確要刪的話?df.drop('new',axis=1,inplace= True)

9、選擇滿足相關條件的數據

? ? ?選擇W列的值大于0的數據

? ? 選擇W列的值大于0的數據的Y的數據

?選擇W列的值大于0并且Y列的值大于1的數據

10、將另一列的數據當做行名

df.set_index('state')

同樣,如果確定要修改,還需要?df.set_index('state',inplace=True)

11、將數據轉化成DataFrame

12、分組計算

平均值

最大值

標準差? //standard deviation

能計算的都給你計算一遍

13、解決dataframe輸出省略號的問題

pd.set_option('display.max_rows',1000) # 具體的行數或列數可自行設置 pd.set_option('display.max_columns',1000)

14.??unique() ?查看某列不同值的個數

查看多少張圖片有標注

print(train_df['image_id'].unique())

15. value_counts() ?統計某列不同值分別有幾個

在pandas中,value_counts常用于數據表的計數及排序,它可以用來查看數據表中,指定列里有多少個不同的數據值,并計算每個不同值有在該列中的個數,同時還能根據需要進行排序。

print(train_df['image_id'].value_counts())

畫pandas的值的圖要用sns.plot()
?

16. apply()

pandas 的?apply()?函數可以作用于?Series?或者整個?DataFrame

功能是自動遍歷整個?Series?或者?DataFrame, 對每一個元素運行指定的函數。

17. 拆分某一列為好幾列

series內置函數str.split

train_df[['x','y','w','h']] = train_df['bbox'].str[1:-1].str.split(',', expand=True).astype(np.float)

18. str轉int

data[['m']] = data[['m']].astype(int)

總結

以上是生活随笔為你收集整理的Python的数据科学函数包(二)——pandas(series dataframe)(loc iloc ix)(csv文件)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。