一日二技:Pandas 與 Docker 的使用技巧
pandas 讀取無頭 CSV
我們知道,CSV 一般是長這樣的:
其中,第一行的name,salary,work叫做 CSV 的頭(header)。正常情況下,CSV 都是有頭的,所以當(dāng)我們使用 pandas 讀取 CSV 的時(shí)候非常方便:
- import pandas as pd
- df = pd.read_csv('example.csv')
- print(df)
運(yùn)行效果如下圖所示:
但有時(shí)候,一些特殊的 CSV 文件可能沒有頭。例如他們可能長成下面這樣:
這種情況下,如果直接使用 pandas 讀取,第一行數(shù)據(jù)就會(huì)變成頭,如下圖所示。但這樣顯然不是我想要的結(jié)果:
為了解決這種問題,有兩種解決方法。第一種方法,是用文本編輯器打開這個(gè) CSV 文件,手動(dòng)給他把頭加上,保存。然后再用 pandas 來讀。
第二種方法是在 pandas 讀取的時(shí)候,增加一個(gè)參數(shù)names,它的值是一個(gè)列表,也就是頭:
- import pandas as pd
- df = pd.read_csv('example.csv', names=['name', 'salary', 'work'])
- print(df)
運(yùn)行效果如下圖所示:
Docker build 提高 apt-get 速度
在國內(nèi)使用 Docker 構(gòu)建基于 Ubuntu 的鏡像時(shí),默認(rèn)使用的是官方源。由于眾所周知的原因,構(gòu)建的速度可能很慢。如果是直接操作宿主機(jī)的 Ubuntu,我們可以使用 vim 或者圖形界面修改源,使用阿里源從而提高速度。
如果是在 Docker 里面應(yīng)該怎么辦呢?我們就可以使用Linux 文本處理三劍客之一的sed來非交互式修改源文件。
在 Docker 中增加如下兩行語句:
- RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
- RUN apt-get clea
它的作用是把/etc/apt/sources.list文件中的所有archive.ubuntu.com替換為mirrors.aliyun.com。從而提高速度。
所謂的 Linux 文本處理三劍客,指的是grep、awk和sed。只要掌握常見用法,就能大大提高你的開發(fā)效率。
本文轉(zhuǎn)載自微信公眾號(hào)「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系未聞Code公眾號(hào)。