获取公开数据
下载、爬虫、API
一些公开数据集网站:
爬虫:
发送请求获取网页源代码——解析网页源代码内容,提取数据
通过公开API获取:
API定义了两个程序之间的服务合约,即双方是如何使用请求和响应来进行通讯的
发送请求——直接获得想要的数据
读取数据
JSON(容易转换成其他数据结构,本身结构非常灵活,可以层层嵌套)
两种数据结构:
JSON对象(Python字典)、JSON数组(Python列表)
如何读取?
import pandas as pd
df = pd.read_json(文件路径)#把json文件转成DataFrame
(文件读取、json解析、转成DataFrame)
languages对应的值是一个长度为3的数组,当键值对里的值是数组时,Pandas会把数组元素视为属于不同数据实例,拆分为单独的一行。其他属性值就被复制成三行来对应上。
CSV(本身就是一个非常规整的二维结构,excel打开就能变成表格,很直观)
对于1GB+以上的csv数据集,如果用excel打开,很可能会卡到崩溃。因为excel不仅要展示数据,还要试图展示格式,还要加载一系列功能。
此时可以用代码编辑器或纯文本编辑器打开。
更好的方法是用代码读取(比用软件读取更快),转换成DataFrame。然后用Pandas库里的方法,想看几行看几行。而不用把海量数据全部加载出来。
如何读取?
df = pd.read_csv(文件路径)#把csv文件转成DataFrame
列名
默认把第一行作为列名,如果本身没有header,而是以实际数据开头,可以设置header=None(表示不要把第一行当成列名)
标签索引
默认用位置索引。如果想把某列当成标签索引,可以传入index_col参数,令index_col=某列名
展示省略的中间列
默认展示20列,如果想提升展示的列数上限,可以用
pd.set_option(“display.max_columns”,150)
df.head(3)
即使值很长,也要展示完
默认每列的值最多展示50个字符,
pd.set_option(“display.max_colwidth”,500)
把上限调整为500个字符
获取结尾n行
df.tail(n) 默认5行
随机抽取n行
df.sample(n) 默认1行
获取DataFrame概况
df.info()
获取数字列的统计信息
df.describe()