成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Pandas常用用法

hedge_hog / 2324人閱讀

摘要:常用用法詳細(xì)內(nèi)容請(qǐng)進(jìn)入官網(wǎng)查閱文獻(xiàn)。常用一般默認(rèn)為零??梢越o出表格的許多信息,看下面的結(jié)果常用的處理操作。表示給填充值返回一個(gè)列表如果有值為返回否則返回可以通過(guò)選擇某一列為的情況下對(duì)其他數(shù)據(jù)進(jìn)行查看轉(zhuǎn)置,即列表的行與列互換。

pandas常用用法

詳細(xì)內(nèi)容請(qǐng)進(jìn)入 pandas官網(wǎng) 查閱文獻(xiàn)。


1. pd.read_csv() 常用parameters:

header : 一般默認(rèn)為零。表示讀進(jìn)來(lái)的表格以第一行作為列名。其他值也是類似的。

index_col : 表示以什么作為行號(hào)。pandas在引入列表的時(shí)候默認(rèn)會(huì)以0,1,2,3,4....作為行號(hào)??梢灾付斜碇械哪骋涣凶鳛樾刑?hào)。

usecols : 指定讀進(jìn)來(lái)的列是什么,以列表的形式給出,可以是列號(hào),也可以是[0,1,2]這樣的表示讀進(jìn)來(lái)0,1,2列。

names : 以列表形式給出,表示列號(hào)只顯示出給定名稱的列號(hào),其他的隱藏。即你可以指定任一列的列號(hào),可以是你自創(chuàng)的,也可以是列表里本來(lái)就有的。

squeeze : 表示如果傳進(jìn)來(lái)的表格只有一列,那么把它壓縮成Serias的形式。默認(rèn)值是False。

dtype : 指定列的數(shù)據(jù)形式。eg: dtype={"PassengerId":np.float64}


感覺(jué)比較常用的參數(shù)一般就這幾個(gè),其他的如果需要可以在官網(wǎng)上查找解釋。

2. 常用表格信息描述函數(shù) df.dtypes

可以把表格每一列數(shù)據(jù)的格式描述出來(lái),eg:

A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object
df.index

把表格的行號(hào)列出,包括行號(hào)的格式。

df.columns

把表格的列號(hào)列出,包括列號(hào)的格式。

df.describe()

把每一列的均值,個(gè)數(shù),方差,最大最小值列出。非常方便的函數(shù)。

        A    C    D
count  4.0  4.0  4.0
mean   1.0  1.0  3.0
std    0.0  0.0  0.0
min    1.0  1.0  3.0
25%    1.0  1.0  3.0
50%    1.0  1.0  3.0
75%    1.0  1.0  3.0
max    1.0  1.0  3.0
df.info()  

可以給出表格的許多信息,看下面的結(jié)果:


RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB
3. 常用的datafram處理操作。 df[[" "," ",...]]

""中間的為列的名字,直接列出選中的列

dfdf.A>50]

不好說(shuō)直接上代碼:

df[df["Age"]>60][["Sex","Pclass","Age","Survived"]]
>>>
Sex    Pclass    Age    Survived
33    male    2    66.0    0
54    male    1    65.0    0
96    male    1    71.0    0
116    male    3    70.5    0
170    male    1    61.0    0
252    male    1    62.0    0
275    female    1    63.0    1
280    male    3    65.0    0
326    male    3    61.0    0
438    male    1    64.0    0
456    male    1    65.0    0
483    female    3    63.0    1
493    male    1    71.0    0
545    male    1    64.0    0
555    male    1    62.0    0
570    male    2    62.0    1
625    male    1    61.0    0
630    male    1    80.0    1
672    male    2    70.0    0
745    male    1    70.0    0
829    female    1    62.0    1
851    male    3    74.0    0

即是以某一列的值為條件進(jìn)行篩選。

多個(gè)條件進(jìn)行篩選。
for i in range(4):
    print(i,len(df[ (df["Sex"]=="male") & (df["Pclass"]==i)]))
>>>
0 0
1 122
2 108
3 347

&符號(hào)表示與,條件有兩個(gè),len()表示長(zhǎng)度。

df.dropna() :

把表格中有nan或者na的行去掉。
pramaters:axis=0,how="any"
還有其他參數(shù)但是并不常用。"any"表示只要行或者列出現(xiàn)了nan則把該行或者該列去掉。如果為"all"表示必須全是nan才去掉。

df.fillna(value) :

表示給nan值填充值。value=0表示給nan填充0值

df.isnull() :

返回一個(gè)列表如果有值為nan返回True,否則返回False.

  A      B      C      D      E
2013-01-01  False  False  False  False  False
2013-01-02  False  False  False   True  False
2013-01-03  False  False  False  False   True
2013-01-04  False  False  False  False  False
2013-01-05  False  False  False  False  False
2013-01-06  False  False  False  False  False

## 可以通過(guò)選擇某一列為Nan的情況下對(duì)其他數(shù)據(jù)進(jìn)行查看
df[df.Age.isnull()].head(5)["Name"]
>>>
5                  Moran, Mr. James
17     Williams, Mr. Charles Eugene
19          Masselmani, Mrs. Fatima
26          Emir, Mr. Farred Chehab
28    O"Dwyer, Miss. Ellen "Nellie"
Name: Name, dtype: object
df.T :

轉(zhuǎn)置,即列表的行與列互換。

df.loc[] :

表示按照標(biāo)簽來(lái)選擇數(shù)據(jù)。

a.loc["one"]則會(huì)默認(rèn)表示選取行為"one"的行

a.loc[:,["a","b"]表示選取所有的行以及columns為a,b的列;

a.loc[["one","two"],["a","b"]]表示選取"one"和"two"這兩行以及columns為a,b的列;

a.loc["one","a"]與a.loc[["one"],["a"]]作用是一樣的,不過(guò)前者只顯示對(duì)應(yīng)的值,而后者會(huì)顯示對(duì)應(yīng)的行和列標(biāo)簽。

df.iloc[] :

表示按照位置進(jìn)行選擇。

a.iloc[[0,2],[1,2]]

表示選取0行1列和2行2列的數(shù)據(jù)。

df.values :

把一個(gè)dataframe類型轉(zhuǎn)化為numpy的array形式。很簡(jiǎn)單

df.replace() :

簡(jiǎn)單粗暴,把列表里的某一個(gè)值替換為另一個(gè)值。

df.replace("male",0).head(3)["Sex"]
>>>
0         0
1    female
2    female
Name: Sex, dtype: object

該函數(shù)還有一些其他參數(shù):regrex,method等,詳細(xì)可查閱官網(wǎng),這里給出一些常用用法。

#選擇某一列對(duì)不同的值進(jìn)行不同的替換,采用字典嵌套的形式。
encode_setting = {"Embarked":{"S":1, "C": 2, "Q": 3, "Unknown":0}}
df.replace(encode_setting).head(3)[["Embarked"]]
>>>
    Embarked
0    1.0
1    2.0
2    1.0

#對(duì)多個(gè)值進(jìn)行替換
df.replace({"male":1,"female":0}).head(3)[["Sex"]]
>>>
Sex
0    1
1    0
2    0
df.drop(axis,labels) :

表示扔掉某一行或者一列,axis指定行或者列,labels指定標(biāo)簽。labels可以用列表的方式來(lái)給定多個(gè)行或者列

value_counts() :

可以計(jì)算出每個(gè)取值在列表中出現(xiàn)的次數(shù)

df.groupby : 

可以按照你所指定的列對(duì)其不同的值進(jìn)行分組,很強(qiáng)大的功能,這里給出代碼更好理解。

df.groupby(["Survived","Pclass"]).sum()
## 按照Survived和Pclassd的取值,對(duì)其他的項(xiàng)進(jìn)行相應(yīng)的求和操作,不是數(shù)值型的不計(jì)數(shù)

df.groupby(["Survived","Pclass"]).size()
## size表示按照Survived和Pclass的取值,進(jìn)行分別計(jì)數(shù)。除了size(),還有mean(),max(),min(),std()等
>>>
Survived  Pclass
0         1          80
          2          97
          3         372
1         1         136
          2          87
          3         119
dtype: int64

df.groupby(["Survived","Pclass"]).size()[0][1]
## 這里返回的是一個(gè)類似矩陣的存在。[0]表示Survived=0,[1]表示Pclass=1,這里前后順序和你給出列的順序有關(guān)。
>>>
80
##如果給定的列不止一個(gè),會(huì)有多重索引(Multiindex),這里可以這樣操作來(lái)選取對(duì)應(yīng)的值。
a=df.groupby(["Survived","Sex",]).std()
a.index
>>>
ultiIndex(levels=[[0, 1], ["female", "male"]],
           labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
           names=["Survived", "Sex"])
           
## 我們可以根據(jù)levels進(jìn)行選取

a.xs([0,"female"],level=["Survived","Sex"])
>>>
    PassengerId    Pclass    Age    SibSp    Parch    Fare
Survived    Sex                        
0    female    263.522063    0.450309    13.618591    1.814635    1.391442    24.821287
## 接下來(lái)就可以根據(jù)需求選擇列得到數(shù)值,同時(shí)可以加上.values來(lái)將其變?yōu)閚p.array的形式。這里的索引有倆個(gè)即Survived和Sex,行名就是levels,所以也可以用loc選擇行和列進(jìn)行選取
df.isin() :

選出給定列中某些值的特定行

df[df["Sex"].isin(["male"])]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44684.html

相關(guān)文章

  • 我是如何入門機(jī)器學(xué)習(xí)的呢

    摘要:在這里我分享下我個(gè)人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對(duì)大家能有所幫助。相關(guān)學(xué)習(xí)鏈接,,入門后的體驗(yàn)在入門了機(jī)器學(xué)習(xí)之后,在實(shí)際工作中,絕大多數(shù)的情況下你并不需要去創(chuàng)造一個(gè)新的算法。 機(jī)器學(xué)習(xí)在很多眼里就是香餑餑,因?yàn)闄C(jī)器學(xué)習(xí)相關(guān)的崗位在當(dāng)前市場(chǎng)待遇不錯(cuò),但同時(shí)機(jī)器學(xué)習(xí)在很多人面前又是一座大山,因?yàn)榘l(fā)現(xiàn)它太難學(xué)了。在這里我分享下我個(gè)人入門機(jī)器學(xué)習(xí)的經(jīng)歷,希望能對(duì)大家能有所幫助。 PS:這篇文章...

    ShowerSun 評(píng)論0 收藏0
  • Pandas 數(shù)據(jù)分析處理入門實(shí)戰(zhàn)案例教程

    摘要:知乎專欄歡迎關(guān)注我的知乎專欄基礎(chǔ)教程數(shù)據(jù)處理三中文版來(lái)源,張圖覆蓋了幾乎所有常用的用法。 知乎專欄 歡迎關(guān)注我的知乎專欄:https://zhuanlan.zhihu.com/geektutu 基礎(chǔ)教程 Pandas 數(shù)據(jù)處理(三) - Cheat Sheet 中文版 來(lái)源,2張圖覆蓋了幾乎所有常用的 Pandas 用法。 Pandas_Cheat_Sheet_中文版.pdf 下載...

    alanoddsoff 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<