不全,碰到就加,給自己複習用,不然之前學過的,太久不用就忘了,又得重新學orz。
基礎
字典操作
字典排序
不論是按key排序,還是按values排序,都一條,比較好記
sorted字典的items()(迭代對象,是元組),排序完了再轉換回來
a = {'d': 1, 'c': 4, 'a': 2, 'b': 3}
b = dict(sorted(a.items(), key=lambda item: item[0])) # 按key排序
c = dict(sorted(a.items(), key=lambda item: item[1])) # 按values排序
print(sorted(a)) # 一般直接用字典名,都是指代key列表,等於dict.keys()
print(b, c, sep='\n')
#輸出
[‘a’, ‘b’, ‘c’, ‘d’]
{‘a’: 2, ‘b’: 3, ‘c’: 4, ‘d’: 1}
{‘d’: 1, ‘a’: 2, ‘b’: 3, ‘c’: 4}
字典拼合
a = {"d":1, "c":2}
b = {'c':3, 'a':4}
c = {"b":5, "c":6}
#合併字典,值以後面的爲準
d1 = {**a, **b}
d2 = {**b, **a}
d3 = {**a, **b, **c}
print(d1, d2, d3, sep='\n')
#輸出
{‘d’: 1, ‘c’: 3, ‘a’: 4}
{‘c’: 2, ‘a’: 4, ‘d’: 1}
{‘d’: 1, ‘c’: 6, ‘a’: 4, ‘b’: 5}
pandas
pandas文檔
https://pandas.pydata.org/pandas-docs/stable/index.html
pandas.concat() - 數據合併、重塑
可以和數據庫數據的拼接做類比
參數 | 說明 |
---|---|
objs | 想要連接的列表或字典,多個對象放在列表中作爲一個參數 |
axis | 連接的軸方向。默認爲0(如果是二維數據,就是豎着的方向) |
join | 其他軸的索引按交集inner、並集outer進行合併。默認爲"outer" |
join_axes | 指明用於其他n-1條軸的索引,不執行交併運算 |
keys | 與連接對象有關的值,用於形成連接軸向上的層次化索引,可以是列表、數組、元組數組、數組列表(需設置levels) |
levels | 指定用作層次化索引各個級別的索引(用於設置keys) |
names | 創建分層級別的名稱(用於設置keys、levels) |
verify_integrity | 檢查結果對象新軸上的重複情況,發現時引發異常。默認爲False(允許重複) |
ignore_index | 不保留連接軸上的索引,產生新索引range(total_length) |
適用場景
- 得到一些訓練集和測試集,需要將他們拼成一個總集。此時頭部標籤是一樣的,只需要縱向拼接
data = pd.concat([train_data, test_data])
- 。。。
sklearn
sklearn.preprocessing.LabelEncoder()
LabelEncoder是一個類,包含4個方法
方法 | 說明 |
---|---|
fit() | 根據輸入形成一個字典 |
transform() | 將輸入轉換爲索引 |
fir_transform() | 先形成字典,再轉換爲索引 |
inverse_transform() | 根據索引得到原始數據 |
將不規律的特徵值轉換爲索引來規範化取值
比如給一些性別特徵值,轉換成01