我想将荷兰统计局(CBS)的OData XML数据源导入我们的数据库.使用lxml和pandas我认为这应该是直截了当的.通过使用OrderDict,我想保留列的顺序以便于阅读,但不知怎的,我无法做到正确.
from collections import OrderedDict
from lxml import etree
import requests
import pandas as pd
# CBS URLs
base_url = 'http://opendata.cbs.nl/ODataFeed/odata'
datasets = ['/37296ned', '/82245NED']
feed = requests.get(base_url + datasets[1] + '/TypedDataSet')
root = etree.fromstring(feed.content)
# all record entries start at tag m:properties, parse into data dict
data = []
for record in root.iter('{{{}}}properties'.format(root.nsmap['m'])):
row = OrderedDict()
for element in record:
row[element.tag.split('}')[1]] = element.text
data.append(row)
df = pd.DataFrame.from_dict(data)
df.columns
Run Code Online (Sandbox Code Playgroud)
检查data,OrderDict的顺序正确.但是查看df.head()列已经按字母顺序排序,首先使用CAPS?
帮忙,有人吗?
我已经开始将 Prefect 用于各种项目,现在我需要决定 GCP 上哪种部署策略最有效。最好我想无服务器工作。比较 Cloud Run、Cloud Functions 和 App Engine,我倾向于选择后者,因为它没有超时限制,而其他两个有 9 个响应。15分钟。
我有兴趣了解人们如何无服务器部署 Prefect 流,以便调度/触发流以进行批处理,而代理在不使用时会自动缩小。
或者,更经典的方法是在Compute Engine上部署 Prefect并通过 Cloud Scheduler 进行调度。但我觉得这有点过时,并没有充分体现 Prefect 的功能和未来发展的灵活性。
经过一些研究和测试,我们决定开始使用 Google Cloud Composer。由于我们当前的 DAG 和任务相对较小,并且不需要服务器连续运行,因此我正在寻找如何管理成本。
两个问题:
preemptible虚拟机的选项似乎合乎逻辑。这大大节省了成本,我正在考虑选择 3x n1-standard-4。我希望每个任务都很短,所以不要认为这会对我们的工作负载产生重大影响。是否可以将preemptibleVM 与 Composer一起使用?帮助,有人吗?
作为Python的相对新人,我试图使用sklearn RandomForestClassifier.yhat的操作指南中的一个示例如下:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75
df['species'] = pd.Factor(iris.target, iris.target_names)
df.head()
train, test = df[df['is_train']==True], df[df['is_train']==False]
features = df.columns[:4]
clf = RandomForestClassifier(n_jobs=2)
y, _ = pd.factorize(train['species']) # assignment I don't understand
clf.fit(train[features], y)
preds = iris.target_names[clf.predict(test[features])]
pd.crosstab(test['species'], preds, rownames=['actual'], colnames=['preds'])
Run Code Online (Sandbox Code Playgroud)
有些人可以解释一下y,_赋值的作用以及它是如何工作的.它没有明确使用,但如果我把它遗漏,我会收到错误.
我对Python和pandas比较陌生,并且正在与(hierachical)索引进行斗争.我已经掌握了基础知识,但是因为更先进的切片和横截面而丢失了.
例如,使用以下数据帧
import pandas as pd
import numpy as np
data = pd.DataFrame(np.arange(9).reshape((3, 3)),
index=pd.Index(['Ohio', 'Colorado', 'New York'], name='state'), columns=pd.Index(['one', 'two', 'three'], name='number'))
Run Code Online (Sandbox Code Playgroud)
我想选择除索引'Colorado'之外的所有内容.对于我可以做的小数据集:
data.ix[['Ohio','New York']]
Run Code Online (Sandbox Code Playgroud)
但是如果唯一索引值的数量很大,那就不切实际了.天真地,我希望有一种类似的语法
data.ix[['state' != 'Colorado']]
Run Code Online (Sandbox Code Playgroud)
但是,这只返回第一条记录"俄亥俄州"并且不返回"纽约".这有效,但很麻烦
filter = list(set(data.index.get_level_values(0).unique()) - set(['Colorado']))
data[filter]
Run Code Online (Sandbox Code Playgroud)
当然有更多Pythonic,冗长的方式这样做?