小编dka*_*tan的帖子

pandas.DataFrame.from_dict不使用OrderedDict保留顺序

我想将荷兰统计局(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?

帮忙,有人吗?

python pandas python-collections

21
推荐指数
1
解决办法
2万
查看次数

在 Google Cloud 中运行 Prefect flow serverless 的最佳实践

我已经开始将 Prefect 用于各种项目,现在我需要决定 GCP 上哪种部署策略最有效。最好我想无服务器工作。比较 Cloud Run、Cloud Functions 和 App Engine,我倾向于选择后者,因为它没有超时限制,而其他两个有 9 个响应。15分钟。

我有兴趣了解人们如何无服务器部署 Prefect 流,以便调度/触发流以进行批处理,而代理在不使用时会自动缩小。

或者,更经典的方法是在Compute Engine上部署 Prefect并通过 Cloud Scheduler 进行调度。但我觉得这有点过时,并没有充分体现 Prefect 的功能和未来发展的灵活性。

google-cloud-platform serverless prefect

11
推荐指数
1
解决办法
1340
查看次数

如何经济高效地配置 Google Cloud Composer

经过一些研究和测试,我们决定开始使用 Google Cloud Composer。由于我们当前的 DAG 和任务相对较小,并且不需要服务器连续运行,因此我正在寻找如何管理成本。

两个问题:

  1. 使用preemptible虚拟机的选项似乎合乎逻辑。这大大节省了成本,我正在考虑选择 3x n1-standard-4。我希望每个任务都很短,所以不要认为这会对我们的工作负载产生重大影响。是否可以将preemptibleVM 与 Composer一起使用?
  2. 计划打开/关闭 Composer 环境,如本文所述。我在文档中找不到如何做到这一点,要么通过关闭整个环境,要么按照答案中的建议关闭工作人员。

帮助,有人吗?

airflow google-cloud-composer

6
推荐指数
1
解决办法
2041
查看次数

y,_赋值在python/sklearn中做什么?

作为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 scikit-learn

5
推荐指数
1
解决办法
322
查看次数

排除pandas数据帧中索引行的最有效方法

我对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,冗长的方式这样做?

python pandas

4
推荐指数
1
解决办法
7150
查看次数