Python數據分析(一)-Pandas「2」

切片操作

# 從第十行到二十行的所有值,間隔爲2.
s4=college[10:20:2]
print(s4)

結果:
在這裏插入圖片描述
在College中,第十行到第二十行的截圖展示,可以對比看打印結果。
在這裏插入圖片描述

# 獲取具體某個列的具體信息
seriesapps=college['Apps']
# 對某一列進行切片處理,獲取想要的值
seriesapps[1:10:2]

//輸出結果
1    2186
3     417
5     587
7    1899
9     582
Name: Apps, dtype: int64

在College中,第一行到第十行,Apps的值信息,可以對比查看輸出結果:
在這裏插入圖片描述
:要想索引值不是數值,可以查看上一篇set_index,將某個具體的值設置爲索引。

copy()與drop()

# 建立數據文本,以便多次修改,利用.copy之後不影響原數據
DataFrame=iris_data[:5].copy()
# 去除掉不想顯示的行數
print(DataFrame.drop(index=[1,3]))
DataFrame=iris_data[:5].copy()
# 去除掉不想要展示的列,需要藉助conlumns.
DataFrame.drop(columns=["花萼寬度","花瓣寬度"])


//輸出結果。去掉不想要的行,以及不想要的列

   花萼長度  花萼寬度  花瓣長度  花瓣寬度      類別
2   4.9   3.0   1.4   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2  setosa
花萼長度	花瓣長度	類別
1	5.1	1.4	setosa
2	4.9	1.4	setosa
3	4.7	1.3	setosa
4	4.6	1.5	setosa
5	5.0	1.4	setosa

條件檢索

# 將空值信息篩選出來,具體isnull和isna的區別會詳加說明
df=iris_data.loc[iris_data["花萼長度"].isnull()]
print(df)
df1=iris_data.loc[iris_data["花萼長度"].isna()]
print(df1)
df2=iris_data.loc[iris_data["類別"].isnull()]
print(df2)
df3=iris_data.loc[iris_data["類別"].isna()]
print(df3)

# 篩選:不爲空的前四條信息
df2=iris_data.loc[iris_data["花萼長度"].notnull()]
print(df2[:4])

# # 篩選:具體某一個字段包含具體值的前五條
df3=iris_data.loc[iris_data["花萼長度"].isin([5.0])]
print(df3[:5])


//輸出結果(一一對應)
  花萼長度  花萼寬度  花瓣長度  花瓣寬度   類別
1   NaN   3.5   1.4   0.2  NaN
   花萼長度  花萼寬度  花瓣長度  花瓣寬度   類別
1   NaN   3.5   1.4   0.2  NaN
   花萼長度  花萼寬度  花瓣長度  花瓣寬度   類別
1   NaN   3.5   1.4   0.2  NaN
   花萼長度  花萼寬度  花瓣長度  花瓣寬度   類別
1   NaN   3.5   1.4   0.2  NaN


   花萼長度  花萼寬度  花瓣長度  花瓣寬度      類別
2   4.9   3.0   1.4   0.2  setosa
3   4.7   3.2   1.3   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2  setosa


    花萼長度  花萼寬度  花瓣長度  花瓣寬度      類別
5    5.0   3.6   1.4   0.2  setosa
8    5.0   3.4   1.5   0.2  setosa
26   5.0   3.0   1.6   0.2  setosa
27   5.0   3.4   1.6   0.4  setosa
36   5.0   3.2   1.2   0.2  setosa

條件統計

# 打印出類別爲某個值的所有字段統計
print(iris_data.loc[iris_data["類別"]=="versicolor"].count())
c1=sum(iris_data["類別"]=="setosa")
c2=sum(iris_data["類別"]=="versicolor")
c3=sum(iris_data["類別"]=="virginica")
# 直接一一輸出具體的三個值
print(c1,c2,c3)
# 根據“類別”的值分別進行統計,就是所有的值都會顯示出來
iris_data["類別"].value_counts()

//輸出結果(一一對應,因爲自己手動改動了一個值爲happy,所以第三個的統計結果會出現四個值)
花萼長度    50
花萼寬度    50
花瓣長度    50
花瓣寬度    50
類別      50
dtype: int64

49 50 50

versicolor    50
virginica     50
setosa        49
happy          1
Name: 類別, dtype: int64

條件賦值

# 建立數據副本,以便多次修改
DataFrame=iris_data[:5].copy()
# 選擇出想要的數據然後對其中某個字段重新賦值
DataFrame.loc[DataFrame["花萼長度"]>4.8,"類別"]="大花萼"
print(DataFrame)

# 建立數據副本,以便多次修改
DataFrame=iris_data[:5].copy()
# 選擇出想要的數據然後對其所在的信息全部賦值爲固定值,主要目的就是可以去除所謂的髒數據,這樣更加容易將有用信息篩選出來
DataFrame.loc[DataFrame["花萼長度"]>4.8]="錯誤賦值"
DataFrame

//輸出結果(一一對應輸出)
花萼長度  花萼寬度  花瓣長度  花瓣寬度      類別
1   4.2   3.5   1.4   0.2   happy
2   4.9   3.0   1.4   0.2     大花萼
3   4.7   3.2   1.3   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2     大花萼
花萼長度	花萼寬度	花瓣長度	花瓣寬度	類別
1	4.2	3.5	1.4	0.2	happy
2	錯誤賦值	錯誤賦值	錯誤賦值	錯誤賦值	錯誤賦值
3	4.7	3.2	1.3	0.2	setosa
4	4.6	3.1	1.5	0.2	setosa
5	錯誤賦值	錯誤賦值	錯誤賦值	錯誤賦值	錯誤賦值

條件統計

# count(非空值數)、unique(唯一值數)、top(頻數最高者)、freq(最高頻數)
# unique值爲四,就是因爲有4個不同的值。count爲總行數,
iris_data["類別"].describe()

# 統計總數(非空值)
iris_data["類別"].count()

# 某個字段的最大值爲多少
print(iris_data["花萼長度"].max())
# 某個字段的的最小值爲多少
print(iris_data["花萼長度"].min())
#  某個字段的平均值爲多少
print(iris_data["花萼長度"].mean())
#  某個字段的中值爲多少
print(iris_data["花萼長度"].median())

# 統計每列的最小值
print(iris_data.min())
# 統計每列的最大值
print(iris_data.max())
# 統計每列的平均值
print(iris_data.mean())
# 統計每列的中值
print(iris_data.median())

//輸出結果(一一對應)

count            150
unique             4
top       versicolor
freq              50
Name: 類別, dtype: object

150

7.9
4.2
5.837333333333335
5.8

花萼長度      4.2
花萼寬度        2
花瓣長度        1
花瓣寬度      0.1
類別      happy
dtype: object
花萼長度          7.9
花萼寬度          4.4
花瓣長度          6.9
花瓣寬度          2.5
類別      virginica
dtype: object
花萼長度    5.837333
花萼寬度    3.057333
花瓣長度    3.758000
花瓣寬度    1.199333
dtype: float64
花萼長度    5.80
花萼寬度    3.00
花瓣長度    4.35
花瓣寬度    1.30
dtype: float64
# 列出不同的值,其實describe()函數都能展示
print(iris_data['類別'].unique())
# 先列出不同的值,然後再排序,默認升序排列
np.sort(iris_data["花萼長度"].unique())
# 聚合操作,可以同時運行多個函數
iris_agg=iris_data.agg(['max','min','mean','median'])
iris_agg
# 分組,可以統計出每個值統計數量
iris_groupby=iris_data.groupby(["花萼長度"])["花萼長度"].count()
iris_groupby

//輸出結果(一一對應)
['happy' 'setosa' 'versicolor' 'virginica']

array([4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4,
       5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7,
       6.8, 6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.6, 7.7, 7.9])

花萼長度	花萼寬度	花瓣長度	花瓣寬度	類別
max	7.900000	4.400000	6.900	2.500000	virginica
min	4.200000	2.000000	1.000	0.100000	happy
mean	5.837333	3.057333	3.758	1.199333	NaN
median	5.800000	3.000000	4.350	1.300000	NaN
# 分組,可以統計出每個值統計數量
iris_groupby=iris_data.groupby(["花萼長度"])["花萼長度"].count()
iris_groupby

# 分組,根據花萼長度進行分組,但根據的並非其數量進行統計了,而是根據類別來統計
iris_review=iris_data.groupby(['花萼長度'])['類別'].agg(['min','max'])
iris_review

# 分組,根據花萼長度進行分組,根據花瓣長度大小值進行統計
iris_review1=iris_data.groupby(['花萼長度'])['花瓣長度'].agg(['min','max'])
iris_review1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章