一日二技:Pandas 與 Docker 的使用技巧
pandas 讀取無頭 CSV
我們知道,CSV 一般是長這樣的:
其中,第一行的name,salary,work叫做 CSV 的頭(header)。正常情況下,CSV 都是有頭的,所以當我們使用 pandas 讀取 CSV 的時候非常方便:
- import pandas as pd
- df = pd.read_csv('example.csv')
- print(df)
運行效果如下圖所示:
但有時候,一些特殊的 CSV 文件可能沒有頭。例如他們可能長成下面這樣:
這種情況下,如果直接使用 pandas 讀取,第一行數據就會變成頭,如下圖所示。但這樣顯然不是我想要的結果:
為了解決這種問題,有兩種解決方法。第一種方法,是用文本編輯器打開這個 CSV 文件,手動給他把頭加上,保存。然后再用 pandas 來讀。
第二種方法是在 pandas 讀取的時候,增加一個參數names,它的值是一個列表,也就是頭:
- import pandas as pd
- df = pd.read_csv('example.csv', names=['name', 'salary', 'work'])
- print(df)
運行效果如下圖所示:
Docker build 提高 apt-get 速度
在國內使用 Docker 構建基于 Ubuntu 的鏡像時,默認使用的是官方源。由于眾所周知的原因,構建的速度可能很慢。如果是直接操作宿主機的 Ubuntu,我們可以使用 vim 或者圖形界面修改源,使用阿里源從而提高速度。
如果是在 Docker 里面應該怎么辦呢?我們就可以使用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。只要掌握常見用法,就能大大提高你的開發效率。
本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。

































