wordpress企業(yè)站實操天津seo排名效果好
Pandas的數(shù)據(jù)結構
?Series對象
class pandas.Series(data=None, index=None)
data
參數(shù)
含義:
data
是Series
構造函數(shù)中最主要的參數(shù),它用來指定要存儲在Series
中的數(shù)據(jù)。數(shù)據(jù)類型:
data
可以是多種數(shù)據(jù)類型,例如:
Python 列表(list)或元組(tuple),如pd.Series([1, 2, 3])或pd.Series((4, 5, 6))。
NumPy 數(shù)組,例如pd.Series(np.array([7, 8, 9]))。
標量值(單個數(shù)值、字符串等),如pd.Series(5, index=[0, 1, 2]),這將創(chuàng)建一個包含相同標量值的Series。
字典(dictionary),字典的鍵將作為Series的索引(如果未另外指定索引),字典的值作為Series的數(shù)據(jù),例如pd.Series({'a': 10, 'b': 20})。
index
參數(shù)
含義:index參數(shù)用于指定Series的索引,它定義了數(shù)據(jù)的標簽。
數(shù)據(jù)類型:
可以是一個Index對象(這是pandas中專門用于表示索引的數(shù)據(jù)結構),例如pd.Index(['x', 'y', 'z'])可以作為索引傳遞給Series。
也可以是其他類似序列的數(shù)據(jù)類型,如列表、元組等,例如pd.Series([100, 200, 300], index=['m', 'n', 'o'])。
索引長度要求:index的長度必須與data的長度相同(當data是列表、數(shù)組等有序數(shù)據(jù)結構時)。如果data是標量,index的長度決定了Series的長度。例如,data為標量值5,index為[0, 1, 2],則會生成一個包含三個元素值都為5的Series。
通過numpy.ndarray數(shù)組來創(chuàng)建
# 0 創(chuàng)建 numpy.ndarray數(shù)組
import numpy as nparr = np.array([3, 6, 9])
arr
?
# 1 通過 numpy.ndarray數(shù)組 來創(chuàng)建 Series對象(默認 索引)
import pandas as pds1 = pd.Series(arr)
s1
# 2 通過 numpy.ndarray數(shù)組 來創(chuàng)建 Series對象(指定 索引 類型)
s2 = pd.Series(arr, index=['x', 'y', 'z'])
s2
通過list列表來創(chuàng)建
# 導包 pandas
import pandas as pd
# 創(chuàng)建含字符串和整數(shù)的 Series 對象,,自動生成索引
s1 = pd.Series(['張三', 13])
print(s1)
print("-" * 50)
print(type(s1))
# 創(chuàng)建含兩個字符串的 Series,自動生成索引
s2 = pd.Series(['李四', '北京'])
print(s2)
print("-" * 50)
print(type(s2))
# 創(chuàng)建含兩個整數(shù)的 Series,自動生成索引
s3 = pd.Series([18, 15000])
print(s3)
print("-" * 50)
print(type(s3))
# 創(chuàng)建含有姓名和城市的 Series,自定義索引
s4 = pd.Series(["王五", "鄭州"], index=['姓名', '城市'])
print(s4)
print("-" * 50)
print(type(s4))
通過元組或字典創(chuàng)建 Series 對象
# 1 使用元組 創(chuàng)建 Series 對象
import pandas as pds1 = pd.Series(('張三', '李四', '王五'), index=['a', 'b', 'c'])
print(s1)
print("-" * 50)
print(type(s1))
# 2 使用字典 創(chuàng)建 Series 對象
dict1 = {"name" : "悟空","age" : 23,"skill" : "火眼金睛"
}s2 = pd.Series(dict1, index=['name', 'age'])
print(s2)
print("-" * 50)
print(type(s2))
Series對象常用屬性和方法
常見屬性
屬性 | 說明 |
loc | 使用索引值取子集 |
iloc | 使用索引位置取子集 |
dtype或dtypes | Series內(nèi)容的類型 |
T | Series的轉置矩陣 |
shape | 數(shù)據(jù)的維數(shù) |
size | Series中元素的數(shù)量 |
values | Series的值 |
常見方法
方法 | 說明 |
append | 連接兩個或多個Series |
corr | 計算與另一個Series的相關系數(shù) |
cov | 計算與另一個Series的協(xié)方差 |
describe | 計算常見統(tǒng)計量 |
drop_duplicates | 返回去重之后的Series |
equals | 判斷兩個Series是否相同 |
get_values | 獲取Series的值,作用與values屬性相同 |
hist | 繪制直方圖 |
isin | Series中是否包含某些值 |
min | 返回最小值 |
max | 返回最大值 |
mean | 返回算術平均值 |
median | 返回中位數(shù) |
mode | 返回眾數(shù) |
quantile | 返回指定位置的分位數(shù) |
replace | 用指定值代替Series中的值 |
sample | 返回Series的隨機采樣值 |
sort_values | 對值進行排序 |
to_frame | 把Series轉換為DataFrame |
unique | 去重返回數(shù)組 |
value_counts | 統(tǒng)計不同值數(shù)量 |
keys | 獲取索引值 |
head | 查看前5個值 |
tail | 查看后5個值 |
import pandas as pd# 創(chuàng)建s對象
s1 = pd.Series(data=[1, 2, 3, 4, 2, 3], index=['E', 'F', 'A', 'B', 'C', 'D'])
print(s1)
print('=================== 常用屬性 ===================')
# 查看s對象值數(shù)量
print("size: ", s1.size)# 查看s對象維度, 返回一個單個元素的元組, 元素個數(shù)代表維度數(shù), 元素值代表值數(shù)量
print("shape: ", s1.shape)# 查看s對象數(shù)據(jù)類型
print("dtype: ", s1.dtype)# 獲取s對象的數(shù)據(jù)值, 返回numpy的ndarray數(shù)組類型
print('values: ', s1.values)# 獲取s對象的索引
print('index: ', s1.index)
print('=================== 常用方法 ===================')
# 查看s對象值數(shù)量
print(s1.value_counts())# 查看s對象前5個值, n默認等于5
print(s1.head(3))# 查看s對象后5個值, n默認等于5
s1.tail(3)# 獲取s對象的索引
print(s1.keys())# s對象轉換成python列表
print(list(s1))# s對象轉換成df對象
print(s1.to_frame())
print(type(s1.to_frame()))# s對象中數(shù)據(jù)的基礎統(tǒng)計信息
print(s1.describe())
# print('------------------------------')
# s對象最大值、最小值、平均值、求和值...
print(s1.max())
print(s1.min())
print(s1.mean())
print(s1.sum())# s對象數(shù)據(jù)值去重, 返回s對象
print(s1.drop_duplicates())
print(type(s1.drop_duplicates()))
print('------------------')
# s對象數(shù)據(jù)值去重, 返回數(shù)組
print(s1.unique())
print(type(s1.unique()))# s對象數(shù)據(jù)值排序, 默認升序
print(s1.sort_values())
# print('----------------------------------')
print(s1.sort_values(ascending=False))# s對象索引值排序, 默認升序
print(s1.sort_index())
# print('----------------------------------')
print(s1.sort_index(ascending=False))# s對象不同值的數(shù)量, 類似于分組計數(shù)操作
s1.value_counts()
實例
import pandas as pd
# 1 加載并觀察數(shù)據(jù)集df = pd.read_csv('../data/a_scientists.csv')
df
# 2 獲取年齡列
ages = df['Age']
ages# 3 求平均年齡
ages.mean()#%%
# 4 求高于平均年齡 組成 布爾結果
print(ages > ages.mean())
print('--------------------------------')
print(type(ages > ages.mean()))
print('--------------------------------')
print(list(ages > ages.mean()))# 5 求高于平均年齡 組成 年齡列
print(ages[ages > ages.mean()])
print('------------------------')
print(ages[list(ages > ages.mean())])
求年齡大于平均值
ages > ages.mean()
df[ages > ages.mean()]