del
關鍵字可以刪除欄位。例如,加入新的一欄,裡面儲存 state
欄是否等於 Ohio
的布林值:
In [68]: frame2["eastern"] = frame2["state"] == "Ohio"
In [69]: frame2
Out[69]:
year state pop debt eastern
0 2000 Ohio 1.5 NaN True
1 2001 Ohio 1.7 NaN True
2 2002 Ohio 3.6 NaN True
3 2001 Nevada 2.4 NaN False
4 2002 Nevada 2.9 NaN False
5 2003 Nevada 3.2 NaN False
使用 del
方法來移除這一欄:
In [70]: del frame2["eastern"]
In [71]: frame2.columns
Out[71]: Index(['year', 'state', 'pop', 'debt'], dtype='object')
另一種常見的資料型態是字典裡面的字典:
In [72]: populations = {"Ohio": {2000: 1.5, 2001: 1.7, 2002: 3.6},
"Nevad": {2001: 2.4, 2002: 2.9}}
如果將嵌套的字典傳給 DataFrame,pandas 會將外面的字典索引鍵視為直欄,將裡面的索引鍵視為橫列索引:
In [73]: frame3 = pd.DataFrame(populations)
In [74]: frame3
Out[74]:
Ohio Nevada
2000 1.5 NaN
2001 1.7 2.4
2002 3.6 2.9
使用類似 NumPy 陣列的語法來轉置 DataFrame (對調列與欄):
In [75]: frame3.T
Out[75]:
2000 2001 2002
Ohio 1.5 1.7 3.6
Nevada NaN 2.4 2.9
結果的索引是藉由結合內部字典的索引鍵來產生,但如果有指定明確的索引就不是這麼回事了:
In [76]: pd.DataFrame(populations, index=[2001, 2002, 2003])
Out[76]:
Ohio Nevada
2001 1.7 2.4
2002 3.6 2.9
2003 NaN NaN
Series 的字典也能以相同的方式來處理:
In [77]: pdata = {"Ohio": frame3["Ohio"][:-1],
....: "Nevada": frame3["Nevada"][:2]}
In [78]: pd.DataFrame{pdata)
Out[78]:
Ohio Nevada
2000 1.5 NaN
2001 1.7 2.4
今日的分享就到這囉,我們明天見,掰掰!