數據挖掘工具pandas(六)Series

1.Series 一維,帶標籤數組
2.DataFrame 二維,Series容器

series和dataframe的區別: series只有行索引沒有列索引。

一,創建series類型的兩種方式

1,第一種創建series方式
1)不指定索引
import pandas as pd
print(pd.Series([1,2,3,4]))

0    1
1    2
2    3
3    4
dtype: int64
2)指定索引
import pandas as pd
import numpy as np
import string
a = pd.Series(np.arange(5),index=list(string.ascii_uppercase[:5]))
print(a)

#------------output----------------
A    0
B    1
C    2
D    3
E    4
dtype: int32
2,第二種創建方式(根據字典創建)
import pandas as pd
import string
# 使用字典推導式創建一個字典
temp = {string.ascii_uppercase[i]:i for i in range(10)}
print(temp)
a = pd.Series(temp)
b = pd.Series(temp,index=list(string.ascii_uppercase[5:15]))
print(a)
print(b)

#------------output----------------
{'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9}
A    0
B    1
C    2
D    3
E    4
F    5
G    6
H    7
I    8
J    9
dtype: int64
F    5.0
G    6.0
H    7.0
I    8.0
J    9.0
K    NaN
L    NaN
M    NaN
N    NaN
O    NaN
dtype: float64

二,如何修改series的dtype

import pandas as pd
import string

dicts = {string.ascii_uppercase[i]:i for i in range(10)}
print(dicts)
temp = pd.Series(dicts).astype('float32')
print(temp)

#------------output----------------
{'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9}
A    0.0
B    1.0
C    2.0
D    3.0
E    4.0
F    5.0
G    6.0
H    7.0
I    8.0
J    9.0
dtype: float32

三,series的切片和索引

import pandas as pd
import string

dicts = { string.ascii_uppercase[i]:i for i in range (10) }
temp = pd.Series(dicts)

# 切片,傳入start、end、步長即可
print(temp[2:10:2])

# 傳入索引
print(temp[1])

# 根據索引取出多值
print(temp[[1,2,3,5]])

# 根據布爾值進行判斷取出數值
print(temp[temp>4])

# 根據自定義索引取值
print(temp['F'])

# 根據自定義索引取出多值
print(temp[['A','E']])

四,servies的屬性(index、values)

import pandas as pd
import string

dicts = { string.ascii_uppercase[i]:i for i in range (10) }
temp = pd.Series(dicts)

# Series.index屬性是可以迭代的
# for i in temp.index:
#     print(i,len(temp.index))

# Series.values屬性是可以迭代的
# for j in temp.values:
#     print(j,len(temp.values))

# Series.index和Series.values可以轉換爲list
a = list(temp.values[:2])
print(temp.index)
print(temp.values,type(temp.values))
print(a,type(a))

Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], dtype='object')
[0 1 2 3 4 5 6 7 8 9] <class 'numpy.ndarray'>
[0, 1] <class 'list'>



# Series對象本質上由兩個數組構成
# 一個數組構成對象的鍵(index,索引),一個數組構成對象的值(values),鍵->值

# ndarray有很多方法都可以運用於series類型,比如argmax,clip
# series具有where方法,但結果和ndarray不一樣

五,根據series的行索引和values排序

import pandas as pd
import string
import random
dicts = { string.ascii_uppercase[i]:random.randint(1,10) for i in range (10) }
temp = pd.Series(dicts)

temp = temp.sort_index()
temp = temp.sort_values()
print(temp)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章