我df在熊猫中有以下内容.
0 A B C
1 2 NaN 8
Run Code Online (Sandbox Code Playgroud)
我如何检查是否df.iloc[1]['B']是NaN?
我尝试使用df.isnan(),我得到一个这样的表:
0 A B C
1 false true false
Run Code Online (Sandbox Code Playgroud)
但我不知道如何索引表格,以及这是否是一种有效的工作方式?
我知道,priority_weight可以为被设置DAG在default_args官方文件中按例子在这里。
我们还可priority_weight以为 中的每个任务设置不同的DAG吗?
继本教程的例子,那岂不是t1会从具有不同的优先级t2。
这是我的代码。我这样做是因为当我尝试放置 chromedriver.exe 的路径时,我要么得到“WebDriverException:消息:'chromedriver.exe'可执行文件可能有错误的权限”或“WebDriverException:消息:'chromedriver'可执行文件需要在 PATH 中”,我不知道如何解决它。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
Run Code Online (Sandbox Code Playgroud)
运行此代码会出现以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-43-614c8d8b619c> in <module>
5
6
----> 7 browser = webdriver.Chrome(ChromeDriverManager().install())
8
/srv/conda/envs/notebook/lib/python3.7/site-packages/webdriver_manager/chrome.py in install(self, path)
17 def install(self, path=None):
18 # type: () -> str
---> 19 bin_file = self._file_manager.download_driver(self.driver, path)
20 os.chmod(bin_file.path, 0o755)
21 return bin_file.path
/srv/conda/envs/notebook/lib/python3.7/site-packages/webdriver_manager/cache.py in download_driver(self, driver, path, subpath)
70 if path is not None:
71 path = os.path.abspath(path)
---> 72 cached_binary …Run Code Online (Sandbox Code Playgroud) 我的目标:
我有一个构建的 docker 映像,并希望在该映像上运行我的所有流程。
现在:
我有以下任务正在本地 Dask 执行器上运行。运行代理的服务器与执行所需的环境是不同的 python 环境my_task- 因此需要在预构建映像中运行。
我的问题是: 如何在 Dask Executor 上运行此流程,以便它在我提供的 docker 映像(作为环境)上运行?
import prefect
from prefect import task, Flow
from prefect.engine.executors import LocalDaskExecutor
from prefect.environments import LocalEnvironment
@task
def hello_task():
logger = prefect.context.get("logger")
logger.info("Hello, Docker!")
with Flow("My Flow") as flow:
results = hello_task()
flow.environment = LocalEnvironment(
labels=[], executor=LocalDaskExecutor(scheduler="threads", num_workers=2),
)
Run Code Online (Sandbox Code Playgroud)
我认为我需要首先在该 docker 映像上启动服务器和代理(如此处所述),但我想可以有一种方法可以简单地在提供的映像上运行 Flow。
更新1
按照本教程,我尝试了以下操作:
import prefect
from prefect import task, Flow
from prefect.engine.executors import LocalDaskExecutor
from …Run Code Online (Sandbox Code Playgroud) 我在使用Pandas random_state的地方有以下代码
randomState = 123
sampleSize = 750
df = pd.read_csv(filePath, delim_whitespace=True)
df_s = df.sample(n=sampleSize, random_state=randomState)
Run Code Online (Sandbox Code Playgroud)
这将生成一个示例数据框df_s。每次我使用相同的代码运行时randomState,都会得到相同的示例df_s。当我从改变值123,以12样品的变化一样,所以我想这是什么random_state呢。
我的愚蠢问题:数量变化如何影响样本变化?我阅读了Pandas文档 和Numpy文档,但看不清图片。
任何带有示例的简单解释将不胜感激。
使用假设库并执行单元测试时,如何查看该库在我的代码上尝试的实例?
例
from hypothesis import given
import hypothesis.strategies as st
@given(st.integers())
def silly_example(some_number):
assert some_number > 0
Run Code Online (Sandbox Code Playgroud)
问题是:如何打印/查看some_number库生成的变量?
我有以下几点np.array:
my_matrix = np.array([[1,np.nan,3], [np.nan,1,2], [np.nan,1,2]])
Run Code Online (Sandbox Code Playgroud)
my_matrix = np.array([[1,np.nan,3], [np.nan,1,2], [np.nan,1,2]])
Run Code Online (Sandbox Code Playgroud)
如果我对其进行评估np.cov,我会得到:
np.cov(my_matrix)
Run Code Online (Sandbox Code Playgroud)
array([[ 1., nan, 3.],
[nan, 1., 2.],
[nan, 1., 2.]])
Run Code Online (Sandbox Code Playgroud)
但是如果我用它来计算它,pd.DataFrame.cov我会得到不同的结果:
pd.DataFrame(my_matrix).cov()
Run Code Online (Sandbox Code Playgroud)
np.cov(my_matrix)
Run Code Online (Sandbox Code Playgroud)
我知道根据pandas文档,他们处理nan值。
我的问题是,我怎样才能得到相同(或相似的结果)numpy?或者在计算协方差时如何处理丢失的数据numpy?
我有以下3d numpy数组np.random.rand(6602, 3176, 2)。我想将其转换为2d数组(numpy或pandas.DataFrame),其中内部的每个值都是一个元组,使得形状为(6602, 3176)。
这个问题帮助我了解了如何减小尺寸,但是我仍然对元组位感到困惑。
考虑以下 pd.DataFrame
import numpy as np
import pandas as pd
start_end = pd.DataFrame([[(0, 3), (4, 5), (6, 12)], [(7, 10), (11, 90), (91, 99)]])
values = np.random.rand(1, 99)
Run Code Online (Sandbox Code Playgroud)
的start_end是一个pd.DataFrame形状(X, Y),其中每个值是内部的元组(start_location, end_location)中的values矢量。另一种说法是特定单元格中的值是不同长度的向量。
题
如果我想找到 中每个单元格的向量值的平均值(例如),pd.DataFrame我该如何以一种具有成本效益的方式做到这一点?
我设法用一个.apply函数实现了这一点,但速度很慢。
我想我需要找到某种方法将它呈现在numpy数组中,然后将其映射回 2d 数据框,但我不知道如何。
笔记
泛化问题
更一般地说,我这是一个反复出现的问题,即如何制作 3d 数组,其中一个维度的长度与通过某些转换函数(平均值、最小值等)与 2d 矩阵的长度不相等。
目的是创建一个大数据框架,我可以在其上执行操作,例如平均每列的行等.
问题是随着数据帧的增加,每次迭代的速度也会增加,所以我无法完成计算.
注意:我df只有两列,这col1是不必要的,所以我加入它.col1是一个字符串,col2是一个浮点数.行数是3k.以下是一个例子:
folder_paths float
folder/Path 1.12630137
folder/Path2 1.067517426
folder/Path3 1.06443264
folder/Path4 1.049119625
folder/Path5 1.039635769
Run Code Online (Sandbox Code Playgroud)
问题关于如何提高代码效率以及瓶颈在哪里的任何想法?此外,我不确定是否merge可行.
当前的想法我正在考虑的一个解决方案是分配内存并指定列类型:col1是一个字符串,col2是一个浮点数.
df = pd.DataFrame() # create an empty data frame
for i in range(1000):
if i is 0:
df = generate_new_df(arg1, arg2)
else:
df = pd.merge(df, generate_new_df(arg1, arg2), on='col1', how='outer')
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用pd.concat,但结果非常相似:每次迭代后的时间增加
df = pd.concat([df, get_os_is_from_folder(pnlList, sampleSize, randomState)], axis=1)
Run Code Online (Sandbox Code Playgroud)
pd.concat的结果
run 1
time 0.34s …Run Code Online (Sandbox Code Playgroud) python ×7
pandas ×5
numpy ×4
airflow ×1
covariance ×1
dask ×1
dataframe ×1
docker ×1
docker-image ×1
etl ×1
offset ×1
prefect ×1
python-3.x ×1
random ×1