對于Pandas的簡單認識和基本操作的練習
一 介紹?
Pandas 是一個開源的數據分析和數據處理庫,它是基于 Python 編程語言的庫。
Pandas 提供了易于使用的數據結構和數據分析工具,特別適用于處理結構化數據,如表格型數據(類似于 Excel 表格)。
Pandas 是數據科學和分析領域中常用的工具之一,它使得用戶能夠輕松地從各種數據源中導入數據,并對數據進行高效的操作和分析。
Pandas 廣泛應用在學術、金融、統計學等各個數據分析領域。
主要數據結構
Pandas主要引入了兩種新的數據結構:DataFrame 和 Series。
Series:類似于一維數組或列表,是由一組數據以及與之相關的數據標簽(索引)構成。Series 可以看作是 DataFrame 中的一列,也可以是單獨存在的一維數據結構。
DataFrame:類似于一個二維表格,是 Pandas 中最重要的數據結構。DataFrame 可以看作是由多個 Series 按列排列構成的表格,它既有行索引也有列索引,因此可以方便地進行行列選擇、過濾、合并等操作。
二 使用
?Series
索引:每一個Series都有一個索引,可以是整數,字符串,日期等類型,如果沒有顯示指定索引,Pandas會默認自動創建一個從0開始的整數索引
數據類型:Series可以容納不同數據類型的元素,包括整數,浮點數,字符串等
# series
#創建
#可以通過pd.Series()構造器創建 也可以傳遞一個數據數據加一個可選的索引數組import pandas as pd
a = [1,2,3,4]
b = pd.Series(a)time = ['23年','24年','25年','26年']
date = [100,200,300,400]
c = pd.Series(date,time)
print(c)sites = {1:"0012",2:"0013",3:"0014",4:"0015"}
d = pd.Series(sites)
print(d)var = pd.Series(sites,index=[1,3]) # 按照索引去獲取數組
print(var)
DataFrame
列和行:DataFrame 由多個列組成,每一列都有一個名稱,可以看作一個Series 同時還存在有行索引
二維結構:DataFrame 是一個二維表格 具有行和列 可以視為多個Series對象組成的字典
列的數據類型:不同的列可以包含不同的數據類型 例如整數 浮點型 字符串
?創建方式?
import pandas as pd
# 字典嵌套列表創建
sites = {"web_name":["Google","Baidu","SH"],"age":[1,3,9]}
var = pd.DataFrame(sites)
var
import pandas as pd
# 使用Series創建
data = {"name":pd.Series(["一","二","三"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}
data = pd.DataFrame(data)
data
?文件處理?
import pandas as pd
# csv數據讀取
gender = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
gender
import pandas as pd
# JSON數據讀取
JSON_Test = pd.read_json(r"D:\Study Note\Python_note\Pandas\test.json")
JSON_Test
?保存為文件
import pandas as pd# 數據
data = {"name":pd.Series(["張三","李四","王五"]),"age":pd.Series([21,22,23]),"money":pd.Series([21.2,22.2,23.2])
}# 將數據轉換為DataFrame
data = pd.DataFrame(data)# 將DATa Frame寫入Excel文件中
data.to_excel('test.xlsx',index=False)print("Excel文件生成成功")
常用函數
函數 | 用法 |
pd.merge() | 實現數據合并 |
pd.concat() | 將多個數據框沿著某個軸進行連接 |
loc[]和iloc[] | 對數據進行索引和選擇 |
drop() | 刪除某些列或行 |
isnull() | 檢查失值并使用 |
fillna() | 填充缺失值 |
sort_values() | 排序 |
import pandas as pd
df = pd.read_csv(r"D:\Study Note\Python_note\Pandas\test.csv")
# df.head()# 設置編號 方便篩查
df.set_index('PassengerId',inplace=True)# 獲取單個值
a = df.loc[900,'Name']# 獲取一個Series
b = df.loc[900,['Sex','Age']]# 得到DataFrame
c = df.loc[[896,897,900],["Name","Sex","Age"]]# 行列按區間查詢
d = df.loc[896: 905,"Name":"Age"]# 布爾查詢
f = df.loc[df["Age"] < 18,:]# 條件查詢
g = df.loc[(df["Age"]<=30) & (df["Age"]>=18) & (df["Sex"] == "male"),:]# 新增列查詢
h = df.loc[:,"Year"] = df["Age"] + 2025
df.head()
# 統計函數
# 查看單個Series的數據
df["Age"].mean()# 最大值
df["Age"].max()# 最小值
df["Age"].min()# 按值計數
df["Sex"].value_counts()# 去重
df["Age"].unique()# 缺失值處理
stu = pd.read_excel(r"D:\Study Note\Python_note\Pandas\test.xlsx",skiprows = 2)# 檢查空值
stu.isnull()
stu["name"].notnull()# 排序
df2 = pd.read_csv(r"D:\Study Note\Python_note\Pandas\gender_submission.csv")
df2.sort_values("Age",ascending=False)
?學習時間 2025年07月12日