今天學習數學建模2023年C篇(228)優秀論文
2023高教社杯全國大學生數學建模競賽C題論文展示(C228) - 2023C題論文 - 中國大學生在線
一.pd.DataFrame
pd.DataFrame()
?是 pandas 庫中用于創建二維表格數據結構(DataFrame)的核心函數。它的作用是將各種格式的數據(如字典、列表、Series 等)轉換為帶有行索引和列標簽的表格形式,便于數據處理和分析.
import pandas as pd
data={'單品編碼': ['001', '002', '003'],'分類名稱': ['水果', '蔬菜', '水果'],'價格': [5.0, 3.0, 8.0]}
#解讀:{}為字典,{A:B}為字典里面的健值對。[a,b,c]為列表
print(pd.DataFrame(data))
輸出:
單品編碼 分類名稱 價格
0 001 水果 5.0
1 002 蔬菜 3.0
2 003 水果 8.0
二,mapping_dict =df_1.set_index('單品編碼')['分類名稱'].to_dict()代碼解讀
(一)df_1.set_index('單品編碼') 這一步會把 DataFrame df_1 的索引設置為單品編碼列,返回一個新的 DataFrame。
- 示例:假設原 DataFrame 是:
單品編碼 分類名稱 價格 0 001 水果 5.0 1 002 蔬菜 3.0 2 003 水果 8.0
? ? ?執行后,變成:
分類名稱 價格
單品編碼
001 水果 5.0
002 蔬菜 3.0
003 水果 8.0
(二)['分類名稱']
? ? ? ? ?這一步會從上面的 DataFrame 中選取分類名稱
列,返回一個 Series,其中單品編碼
是索引,分類名稱
是值。
單品編碼
001 水果
002 蔬菜
003 水果
Name: 分類名稱, dtype: object
(3)to_dict()
這一步會把 Series 轉換為字典,其中索引(單品編碼
)會成為字典的鍵,值(分類名稱
)會成為字典的對應值
{'001': '水果', '002': '蔬菜', '003': '水果'}
三,關于series的知識點
Series
?是 pandas 庫中一種一維帶標簽的數據結構,類似于帶索引的數組或列表。它可以存儲任何數據類型(整數、字符串、浮點數、Python 對象等),并且每個元素都有一個對應的標簽(索引)。理解?Series
?是掌握 pandas 的基礎,因為它是?DataFrame
(二維表格)的基本組成單元。
創建方式:
import pandas as pd# 從列表創建,默認索引為 0, 1, 2...
s = pd.Series([10, 20, 30, 40])
print(s)
# 輸出:
# 0 10
# 1 20
# 2 30
# 3 40
# dtype: int64# 指定自定義索引
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
# 輸出:
# a 10
# b 20
# c 30
# d 40
# dtype: int64
理解Series與DataFrame的關系:
- DataFrame?是由多個?Series?組成的二維表格,每一列都是一個 Series。
- Series?的索引對應 DataFrame 的行索引,Series 的名稱(name 屬性)對應 DataFrame 的列名。
- 代碼示例:
# 用兩個 Series 創建 DataFrame s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='A') s2 = pd.Series([4, 5, 6], index=['a', 'b', 'c'], name='B')df = pd.DataFrame({'列1': s1, '列2': s2}) print(df) # 輸出: # 列1 列2 # a 1 4 # b 2 5 # c 3 6
三,grouped = df.groupby('單品編碼')的解析
groupby作用是根據?
df
?這個 DataFrame 中 ‘單品編碼’ 這一列的值,將?df
?中的行進行分組。它創建了一個特殊的 Pandas 對象,稱為“GroupBy 對象”(grouped
),這個對象內部包含了按 ‘單品編碼’ 分組后的各個數據子集。不是直接獲取列,而是基于列的值進行分組
示例:當我們獲得這樣的數據后:日期 單品編碼 銷售量 2023-01-01 A001 10 2023-01-15 A002 5 2023-02-01 A001 8 2023-02-10 A003 12 2023-03-05 A002 7 2023-03-20 A001 15
grouped = df.groupby('單品編碼')for name, group in grouped:print(f"分組鍵: {name}")print(group)print("-" * 20)
輸出為:
分組鍵: A001日期 單品編碼 銷售量0 2023-01-01 A001 102 2023-02-01 A001 85 2023-03-20 A001 15--------------------分組鍵: A002日期 單品編碼 銷售量1 2023-01-15 A002 54 2023-03-05 A002 7--------------------分組鍵: A003日期 單品編碼 銷售量3 2023-02-10 A003 12--------------------
四,字典的創建
-
創建一個空字典:
-
results = {}
添加字典
-
results[key] = value
這將為字典?
results
?添加一個鍵為?key
、值為?value
?的鍵值對。如果?key
?已經存在,則更新其對應的值。 -
訪問值
value = results[key]
這將獲取鍵?
key
?對應的值。如果?key
?不存在,將引發?KeyError。
-
就學到這,內容比較基礎,謝謝觀看