Python3:Pandas的簡單使用1(創建基本的Series和DataFrame實例)

當前環境:Python3.7 ,Pandas 0.25.3

1.聲明

由於前段時間完成了對Pandas的基本學習操作,這裏寫下的內容是對學習進行復習的,用於本人複習

2.官方的實例(本人修改過的)

# 首先導入當前的pandas這個數據分析的庫,簡單的使用DataFrame
import numpy as np
import pandas as pd

# 發現當前的np中具有一個nan這個類型的數據
s = pd.Series([1, 3, 5, np.nan, 6, 8])

print(s)

# 使用pandas的date_range生成以指定時間參數數據和指定跨度的時間日期,這裏跨度爲6天
dates = pd.date_range('20130101', periods=6)
print(dates)  # 當前的數據類型爲datetime64[ns]

# 產生一個隨機的6行4列的數組
np_array = np.random.randn(6, 4)
print("輸出當前產生的數據:\n{}".format(np_array))

# 當前的pd.DateFrame使用日期類型的框架,index表示指定當前的最前列的數據(是索引),columns表示指定當前的每個表頭中顯示的數據
df = pd.DataFrame(np_array, index=dates, columns=list('ABCD'))
print("輸出格式化的數據:\n{}".format(df))

# 輸出當前的行索引
print("輸出當前行的索引:\n{}".format(df.index))
# 輸出當前的列索引值
print("輸出當前的列的縮影:\n{}".format(df.columns))

# 輸出當前的數據類型
print("輸出當前的數據的數據類型:\n{}".format(df.dtypes))

# 使用索引方式取出當前的數據,就是使用當前的columns這個列的數據實現的列索引
print("輸出當前的A列的數據:\n{}".format(df.A))
print("輸出當前的A列的數據:\n{}".format(df["A"]))

# 使用index的方式實現的行索引
print("輸出當前的第一行的數據:\n{}".format(df[:1]))

# 輸出指定的日期的數據
print("輸出2013-01-04到2013-01-05這一行的數據:\n{}".format(df["20130104":"20130105"]))

# 獲取前3行的數據
print("前三行的數據爲:\n{}".format(df.head(3)))

# 獲取最後3行的數據爲
print("前三行的數據爲:\n{}".format(df.tail(3)))


# 修改當前的行索引值index
df.index = ["第{}天".format(i) for i in range(6)]
print("輸出修改後的行索引值:\n{}".format(df))

# 修改當前的列索引值columns
df.columns = ["商品{}".format(i) for i in range(1, 5)]
print("輸出修改列索引後的值:\n{}".format(df))

print("======================")
# 獲取第0天商品1的數據
print("第0天商品1的數據:\n %.2f" % (df["商品1"]["第0天"]))
print("商品1的數據:\n {}".format(df["商品1"]))
# print("商品1的數據:\n {}".format(df["第0天"])) 這個出現錯誤,不能使用index中的數據作爲索引,會報錯
# 只能使用 :1這種數據才能訪問,就是這種切片的方式獲取數據,就是使用索引的時需要使用先列後行的方式獲取數據
print("商品1的數據:\n {}".format(df[:1]))

由於這裏顯示的數據太多,所以本人不上傳圖片了

1.通過官方和自己的發現,當前的Pandas基本上完全兼容當前的numpy的,可以將當前的ndarray數據轉換爲Pandas中的數據

2.當前的Series創建的是一個一維度的數據,就是一般的一維數組,只能放入一維度的數據,否者報錯

3.當前的DataFrame創建的數據就是一個二維度的數據,可以設置行索引和列索引

4.當前的DataFrame中具有index,columns,dtypes這些數據,表示DataFrame就是一個帶有表頭和行頭的矩陣數據,並且可以使用object類型的數據

5.可以重寫DataFrame當前的行索引和列索引

6.可以使用切片的方式獲取數據,類似當前的python中的數組數據的獲取

3.基本的Series操作

# 當前的Series的屬性和方法
# 當前的Series
import numpy as np
import pandas as pd

# 使用當前的series創建屬性以及索引
indexs = ["index_{}".format(i) for i in range(0, 5)]
randoms_data = np.random.randint(1, 100, (5))
print("創建的索引爲:\n{}".format(indexs))
print("當前的數據爲:\n{}".format(randoms_data))
# 注意這裏的數據必須是一維的數據
pd_series_obj = pd.Series(randoms_data, index=indexs)
print(pd_series_obj)

# 使用字典的方式創建series
print("使用字典的方式創建series")
dict_pd = pd.Series({"one": [1, 2, 3], "two": [4, 5, 6], "three": [7, 8, 9]})
print(dict_pd)
# 發現當前的數據中默認的key就是當前的索引(index),當前的key對應的value就表示當前顯示的數據
print("====================")
print(pd.Series({"name": "張三", "age": 18, "pwd": 123}))

這個Series就是一個簡單的一維度的數組,所以操作簡單

在這裏插入圖片描述
總結:

1.創建Series的時候可以使用當前的dict字典的方式創建數據,key默認就是index數據,value就是當前的值

4.總結

1.使用pandas創建Series和DataFrame實例的時候需要注意創建的使用的形式,一個只能是一維度的數據,一個確實二維度的數據,寫錯就會報錯

2.Pandas中的數據基本具有ndarray中的方法和屬性

3.DataFrame在創建的時候可以指定index和columns,如果不指定就默認使用下標方式,從0開始

以上純屬個人見解,如有問題請聯繫本人!

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