當前環境: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開始
以上純屬個人見解,如有問題請聯繫本人!