小编Ash*_*y O的帖子

PySpark - 用于创建新列的字符串匹配

我有一个数据帧,如:

ID             Notes
2345          Checked by John
2398          Verified by Stacy
3983          Double Checked on 2/23/17 by Marsha 
Run Code Online (Sandbox Code Playgroud)

比方说,例如,只有3名员工需要检查:John,Stacy或Marsha.我想像这样制作一个新专栏:

ID                Notes                              Employee
2345          Checked by John                          John
2398         Verified by Stacy                        Stacy
3983     Double Checked on 2/23/17 by Marsha          Marsha
Run Code Online (Sandbox Code Playgroud)

这里是正则表达式还是grep更好?我应该尝试什么样的功能?谢谢!

编辑:我一直在尝试一堆解决方案,但似乎没有任何工作.我应该放弃并为每个员工创建具有二进制值的列吗?IE:

ID                Notes                             John       Stacy    Marsha
2345          Checked by John                        1            0       0
2398         Verified by Stacy                       0            1       0
3983     Double Checked on 2/23/17 by Marsha         0            0       1
Run Code Online (Sandbox Code Playgroud)

python regex apache-spark pyspark databricks

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

在 Databricks 中将变量从 Scala 传递到 Python

我正在使用 Databricks 并尝试在同一个 Scala 笔记本中将数据帧从 Scala 传递到 Python。我使用以下方法将数据帧从 Python 传递到 Spark:

%python
python_df.registerTempTable("temp_table")


val scalaDF = table("temp_table")
Run Code Online (Sandbox Code Playgroud)

我如何反过来做同样的事情?非常感谢!!

python apache-spark apache-spark-sql pyspark databricks

9
推荐指数
1
解决办法
6407
查看次数

Keras神经网络错误:使用序列设置数组元素

我正在将虚拟数据加载到神经网络中,但是却收到一个似乎无法调试的错误:

这是我的可视化数据:

 df:
Label          Mar
0    | [[.332, .326], [.058, .138]]
0    | [[.234, .246], [.234, .395]]
1    | [[.084, .23], [.745, .923]], 
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用“ Mar”列来预测“ Label”列(我知道此数据没有任何意义,它与我的真实数据相似)。这是我的神经网络代码:

model = Sequential()
model.add(Dense(3, input_dim=(1), activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
X = df['Mar']
Y = pd.get_dummies(df['Label'])
model.fit(X, Y, epochs=150, batch_size=10)
Run Code Online (Sandbox Code Playgroud)

这是创建示例数据的代码:

Sample = [{'Label': 0, 'Mar': [[.332, .326], [.058, .138]]},
 {'Label': 0, 'Mar': [[.234, .246], [.013, .592]]},
 {'Label': 1,  'Mar': [[.084, .23], [.745, .923]]}]

df = pd.DataFrame(Sample)
Run Code Online (Sandbox Code Playgroud)

当我到达此代码的最后一行时,出现以下错误:

Epoch 1/150
-----------------------------------------------------------------------
ValueError                            Traceback …
Run Code Online (Sandbox Code Playgroud)

python neural-network python-2.7 pandas keras

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

合并两列中的数字以创建一个数组

用于创建示例数据帧的代码:

Sample = [{'account': 'Jones LLC', 'Jan': 150, 'Feb': 200, 'Mar': [[.332, .326], [.058, .138]]},
     {'account': 'Alpha Co',  'Jan': 200, 'Feb': 210, 'Mar': [[.234, .246], [.234, .395]]},
     {'account': 'Blue Inc',  'Jan': 50,  'Feb': 90,  'Mar': [[.084, .23], [.745, .923]]}]
df = pd.DataFrame(Sample)
Run Code Online (Sandbox Code Playgroud)

示例数据框可视化:

 df:
  account        Jan      Feb          Mar
Jones LLC  |     150   |   200    | [.332, .326], [.058, .138]
Alpha Co   |     200   |   210    | [[.234, .246], [.234, .395]
Blue Inc   |     50    |   90     | [[.084, .23], [.745, …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

6
推荐指数
3
解决办法
2307
查看次数

AirFlowException - Python_Callable 必须是可调用的

我对现有工作流程做了一个小改动,但它破坏了气流。这是代码:

dag_name = platform + "_" + report['table']

dag = DAG(
    dag_name,
    catchup=True,
    default_args=default_args,
    schedule_interval=report['schedule']
)

with dag:

    trigger_report = PythonOperator(
        task_id=dag.dag_id + '_trigger_report',
        python_callable=trigger_report,
        provide_context=True,
        op_kwargs={
            'report_name': report['report'],
            'amazonmws_conn_id': default_args['amazonmws_conn_id']
        },
        dag=dag
    )
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

airflow.exceptions.AirflowException: python_callable param must be callable

python keyword-argument python-2.7 python-3.x airflow

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

气流:从新时间表开始重新运行DAG

背景故事:我每天都在运行一个Airflow作业,时间是start_date2019年7月1日。收集的作业要求第三方提供每天的数据,然后将这些数据加载到我们的数据库中。

在成功完成工作几天后,我意识到第三方数据源每月仅刷新一次数据。因此,我每天只是下载相同的数据。

那时,我将更改为start_date一年前(以获取前几个月的信息),并将DAG的时间表更改为每月运行一次。

如何(在气流UI中)完全重新启动DAG,以使其能够识别我的新产品start_date和计划,并像DAG一样运行完整的回填?

(我知道可以通过命令行请求该回填。但是,我没有命令行界面的权限,并且管理员无法访问。)

python kubernetes airflow airflow-scheduler

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

如何将 GZIP csv 从 S3 直接读取到 pandas 数据帧中

我正在编写一个气流作业来从 s3 读取 gzip 压缩文件。

首先我得到了对象的密钥,效果很好

obj = self.s3_hook.get_key(key, bucket_name=self.s3_bucket)
Run Code Online (Sandbox Code Playgroud)

obj 看起来不错,如下所示:

path/to/file/data_1.csv.gz
Run Code Online (Sandbox Code Playgroud)

现在我想将内容读入 pandas 数据帧。我已经尝试了很多事情,但这是我当前的迭代:

import pandas as pd
df = pd.read_csv(obj['Body'], compression='gzip')
Run Code Online (Sandbox Code Playgroud)

这将返回以下错误:

TypeError: 's3.Object' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我觉得我需要用 StringIO 或 BytesIO 做一些事情...我能够以字节的形式读取它,但认为有一种更直接的方法来获取数据帧

以防万一,当我解压并以 CSV 格式打开时,一行数据如下所示:

 9671211|ddc9979d5ff90a4714fec7290657c90f|2138|2018-01-30 00:00:12|2018-01-30 00:00:16.069048|42b32863522dbe52e963034bb0aa68b6|1909705|8803795|collect|\\N|0||0||0| 
Run Code Online (Sandbox Code Playgroud)

pandas

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

OCR的图像预处理-Tessaract

这是我要检测的图像

显然,此图像非常清晰,因为它的清晰度很低并且不是真实的单词。但是,使用此代码,我无法检测到任何东西:

import pytesseract
from PIL import Image, ImageEnhance, ImageFilter
image_name = 'NedNoodleArms.jpg'
im = Image.open(image_name) 
im = im.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
im.save(image_name)
text = pytesseract.image_to_string(Image.open(image_name))
print(text)
Run Code Online (Sandbox Code Playgroud)

输出

, Md?aod?amms
Run Code Online (Sandbox Code Playgroud)

这里有什么想法吗?我的对比功能生成的图像是:

在此处输入图片说明

哪个看起来不错?我没有大量的OCR经验。您会在这里建议什么预处理?我尝试过将图像调整为更大的尺寸,这有一点帮助,但还不够,还有一些来自PIL的不同滤镜。没什么特别接近的

python ocr image-recognition python-tesseract image-preprocessing

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

截断pandas DataFrame的行

用于创建示例数据帧的代码:

Sample = [{'account': 'Jones LLC', 'Jan': 150, 'Feb': 200, 'Mar': [[.332, .326], [.058, .138]]},
     {'account': 'Alpha Co',  'Jan': 200, 'Feb': 210, 'Mar': [[.234, .246], [.234, .395], [.013, .592]]},
     {'account': 'Blue Inc',  'Jan': 50,  'Feb': 90,  'Mar': [[.084, .23], [.745, .923], [.925, .843]]}]
df = pd.DataFrame(Sample)
Run Code Online (Sandbox Code Playgroud)

示例数据框可视化:

 df:
  account        Jan      Feb          Mar
Jones LLC  |     150   |   200    | [.332, .326], [.058, .138]
Alpha Co   |     200   |   210    | [[.234, .246], [.234, .395], [.013, .592]]
Blue Inc   |     50 …
Run Code Online (Sandbox Code Playgroud)

truncate dataframe python-2.7 pandas

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