当我py -3 -m venv venv
在命令提示符下运行以创建虚拟环境时,它失败了。
"Error: Command '['C:\\Users\\Guest\\Desktop\\Python Web
App\\venv\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-
pip']' returned non-zero exit status 101.
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?我已经安装了最新的 Python 版本。我在为 Web 开发设置 Flask 的路上被困在这里。
是否有 dask 相当于 Spark 在读取镶木地板文件时指定模式的能力?可能使用传递给 pyarrow 的 kwargs 吗?
我的桶中有一堆镶木地板文件,但某些字段的名称略有不一致。我可以在阅读它们后创建一个自定义延迟函数来处理这些情况,但我希望在通过全局打开它们时可以指定模式。也许不是,因为我猜想通过 globing 打开然后会尝试将它们连接起来。由于字段名称不一致,目前此操作失败。
创建镶木地板文件:
import dask.dataframe as dd
df = dd.demo.make_timeseries(
start="2000-01-01",
end="2000-01-03",
dtypes={"id": int, "z": int},
freq="1h",
partition_freq="24h",
)
df.to_parquet("df.parquet", engine="pyarrow", overwrite=True)
Run Code Online (Sandbox Code Playgroud)
通过 dask 读取它并在读取后指定模式:
df = dd.read_parquet("df.parquet", engine="pyarrow")
df["z"] = df["z"].astype("float")
df = df.rename(columns={"z": "a"})
Run Code Online (Sandbox Code Playgroud)
通过 Spark 读取它并指定模式:
from pyspark.sql import SparkSession
import pyspark.sql.types as T
spark = SparkSession.builder.appName('App').getOrCreate()
schema = T.StructType(
[
T.StructField("id", T.IntegerType()),
T.StructField("a", T.FloatType()),
T.StructField("timestamp", T.TimestampType()),
]
)
df = spark.read.format("parquet").schema(schema).load("df.parquet")
Run Code Online (Sandbox Code Playgroud) 目前,在具有约 15 万个节点和 200 万条边的无向图上进行计算nx.triangles(G)
非常慢(大约需要 80 小时)。如果节点度分布高度倾斜,使用以下过程计算三角形是否有问题?
import networkx as nx
def largest_degree_node(G):
# this was improved using suggestion by Stef in the comments
return max(G.degree(), key=lambda x: x[1])[0]
def count_triangles(G):
G=G.copy()
triangle_counts = 0
while len(G.nodes()):
focal_node = largest_degree_node(G)
triangle_counts += nx.triangles(G, nodes=[focal_node])[focal_node]
G.remove_node(focal_node)
return triangle_counts
G = nx.erdos_renyi_graph(1000, 0.1)
# compute triangles with nx
triangles_nx = int(sum(v for k, v in nx.triangles(G).items()) / 3)
# compute triangles iteratively
triangles_iterative = count_triangles(G)
# assertion passes
assert int(triangles_nx) …
Run Code Online (Sandbox Code Playgroud) 问题:将图形从networkx
pytorch 几何图形转换为图形时如何保留节点顺序/标签?
代码:(在 Google Colab 中运行)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
import torch
from torch.nn import Linear
import torch.nn.functional as F
torch.__version__
# install pytorch geometric
!pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.10.0+cpu.html
from torch_geometric.nn import GCNConv
from torch_geometric.utils.convert import to_networkx, from_networkx
# Make the networkx graph
G = nx.Graph()
# Add some cars
G.add_nodes_from([
('Ford', {'y': 0, 'Name': 'Ford'}),
('Lexus', {'y': 1, …
Run Code Online (Sandbox Code Playgroud) 我目前有一个用 pandas 编写的简单脚本,我想将其转换为 dask 数据帧。
在此脚本中,我正在对用户指定列上的两个数据帧执行合并,并尝试将其转换为 dask。
def merge_dfs(df1, df2, columns):
merged = pd.merge(df1, df2, on=columns, how='inner')
...
Run Code Online (Sandbox Code Playgroud)
如何更改此行以匹配 dask 数据帧?
我有一个 pandas 数据框,我使用from_pandas
dask 函数将其转换为 dask 数据框。它有 3 列col1
,即col2
、 和col3
。
现在我正在使用我正在搜索的daskdf[(daskdf.col1 == v1) & (daskdf.col2 == v2)]
wherev1
和v2
are 值来搜索特定行。col3
但是当我尝试获取using的值时,daskdf[(daskdf.col1 == v1) & (daskdf.col2 == v2)]['col3']
它给了我一个 dask 系列结构而不是列值。
在熊猫中我可以做到pandasdf[(pandasdf.col1 == v1) & (pandasdf.col2 == v2)]['col3'].tolist()
。我如何获取这里的值col3
?
使用 Dask 文档中的确切代码: https://jobqueue.dask.org/en/latest/examples.html
如果页面发生变化,代码如下:
from dask_jobqueue import SLURMCluster
from distributed import Client
from dask import delayed
cluster = SLURMCluster(memory='8g',
processes=1,
cores=2,
extra=['--resources ssdGB=200,GPU=2'])
cluster.scale(2)
client = Client(cluster)
def step_1_w_single_GPU(data):
return "Step 1 done for: %s" % data
def step_2_w_local_IO(data):
return "Step 2 done for: %s" % data
stage_1 = [delayed(step_1_w_single_GPU)(i) for i in range(10)]
stage_2 = [delayed(step_2_w_local_IO)(s2) for s2 in stage_1]
result_stage_2 = client.compute(stage_2,
resources={tuple(stage_1): {'GPU': 1},
tuple(stage_2): {'ssdGB': 100}})
Run Code Online (Sandbox Code Playgroud)
这会导致这样的错误:
distributed.protocol.core - CRITICAL - Failed to Serialize
Traceback …
Run Code Online (Sandbox Code Playgroud) 我正在使用Dask将 df 写入Parquet文件:
df.to_parquet(file, compression='snappy', write_metadata_file=False,\
engine='pyarrow', index=None)
Run Code Online (Sandbox Code Playgroud)
我需要在在线镶木地板查看器中显示文件的内容,
显示的列是:
Column1 Column2 Column3 __null_dask_index__
Run Code Online (Sandbox Code Playgroud)
如何删除该__null_dask_index__
列?
我有很多选项卡的 excel 文件。我想连接所有这些,一次一个标签。
我在做:
mypath = "mypath"
files = os.listdir(mypath)
files = [os.path.join(mypath,f) for f in files if f[-4:]=='xlsx']
sheets = pandas.ExcelFile(files[0]).sheet_names
Run Code Online (Sandbox Code Playgroud)
现在,假设我的选项卡是 alpha、beta、gamma 等,我想创建一个数据框列表 df_alpha、df_beta 等,它们是我目录中文件的所有 alpha 选项卡的联合。
通过做:
for sheet in sheets:
df = pandas.DataFrame()
for f in files:
df = pandas.concat([df, pandas.read_excel(f, sheet_name=sheet)])
Run Code Online (Sandbox Code Playgroud)
我可以得到我想要的,但当然我只有一个数据框,它是每个文件中最后一个选项卡的联合。如何更改代码以便我有一个 dfs 列表,每个名称都命名为 df_alpha、df_beta 等?
我正在尝试编写一个带有仅接受字符串的函数的程序。如何使 python 函数参数始终为字符串,如果不是则抛出错误?
我正在寻找类似的东西:
def foo(i: int):
return i
foo(5)
foo('oops')
Run Code Online (Sandbox Code Playgroud)
但这不会引发错误。
python ×9
dask ×5
pandas ×4
dataframe ×3
networkx ×2
parquet ×2
python-3.x ×2
apache-spark ×1
assertion ×1
casting ×1
dask-delayed ×1
excel ×1
graph-theory ×1
performance ×1
pyarrow ×1
pytorch ×1
string ×1
types ×1
virtualenv ×1