Skip to content

Latest commit

 

History

History
98 lines (64 loc) · 2.79 KB

1.md

File metadata and controls

98 lines (64 loc) · 2.79 KB

数据获取

来自文件

csv格式为例。csv是一种简单的数据格式,可以用excel打开。

我们新建一个sample.csv文件,并写入这些数据:

num name age
1 xiaoming 16
2 dawang 21

我们可以使用pandas模块读取csv文件。pandasread_csv()方法会读取csv文件,并返回一个DataFrame对象。

import pandas as pd

some_data_frame = pd.read_csv('sample.csv')

print(some_data_frame)
#    num      name  age
# 0    1  xiaoming   16
# 1    2    dawang   21

DataFrame对象可以调用很多方法,DataFrameto_dict()方法可以把其中的数据转化为一个字典。

some_dict = some_data_frame.to_dict()

print(some_dict)
# {'num': {0: 1, 1: 2}, 'name': {0: 'xiaoming', 1: 'dawang'}, 'age': {0: 16, 1: 21}}

print(some_dict['name'][1])
# dawang

to_dict()方法也可以携带参数,如'list',对字典的形式进行设置。

some_dict = some_data_frame.to_dict('list')

print(some_dict)
# {'num': [1, 2], 'name': ['xiaoming', 'dawang'], 'age': [16, 21]}

print(some_dict['name'][1])
# dawang

由此我们可以看到,列表list其实可以看做是以索引为key的字典dict

some_list = ['xiaoming', 'dawang']
some_dict = {0: 'xiaoming', 1: 'dawang'}

来自网络

json格式为例。json是一种网络数据交换的通用格式,跟python中的dict很相似。

我们也可以用pandas读取本地的json文件,但通常情况下,这些数据是通过网络api获取的。

所以我们使用requests对网络资源进行访问。requestsget()方法可以对一个地址进行访问,并返回一个Response对象。

import requests

some_result = requests.get('https://api.bamo.tech/v0/cosmetic/mostUsedCF?top=5')

print(some_result)
# <Response [200]>

这个Response对象通常可以通过调用json()方法将其中的数据转化为一个字典。

some_json = some_result.json()

print(some_json)
# {'list': [{'_id': '水', 'count': 18123}, {'_id': '甘油', 'count': 13618}, {'_id': '丁二醇', 'count': 11435}, {'_id': '苯氧乙醇', 'count': 11200}, {'_id': '(日用)香精', 'count': 8855}]}

于是我们可以对该字典进行访问。

some_list = some_json['list']

print(some_list)
# [{'_id': '水', 'count': 18123}, {'_id': '甘油', 'count': 13618}, {'_id': '丁二醇', 'count': 11435}, {'_id': '苯氧乙醇', 'count': 11200}, {'_id': '(日用)香精', 'count': 8855}]

print(some_list[0])
# {'_id': '水', 'count': 18123}

来自数据库

MongoDB数据库为例。MongoDB是。。算了算了别搞了。stair3再讲吧。