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公众号。