摄影:产品经理坐车2小时去吃个老火锅
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 clean
它的作用是把/etc/apt/sources.list
文件中的所有archive.ubuntu.com
替换为mirrors.aliyun.com
。从而提高速度。
所谓的 Linux 文本处理三剑客,指的是grep
、awk
和sed
。只要掌握常见用法,就能大大提高你的开发效率。