小编mos*_*evi的帖子

如何修复 ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] 错误的版本号 (_ssl.c:1056)?

我正在尝试用 python 发送电子邮件,但它一直说ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1056). 这是我的代码:

server = smtplib.SMTP_SSL('smtp.mail.com', 587)
server.login("something0@mail.com", "password")
server.sendmail(
"something0@mail.com", 
"something@mail.com", 
"email text")
server.quit()
Run Code Online (Sandbox Code Playgroud)

你知道有什么问题吗?

python ssl smtplib

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

fastparquet和pyarrow之间的比较?

经过一番搜索我没有找到一个彻底的比较fastparquetpyarrow

我找到了这篇博客文章(速度的基本比较)。

还有一个github 讨论,声称使用github 创建的文件fastparquet不支持AWS-athena(顺便说一句,情况仍然如此吗?)

什么时候/为什么要在另一个上使用?主要优点和缺点是什么?


我的特定用例是处理数据,方法是将数据dask写入s3,然后使用AWS-athena进行读取/分析。

python parquet dask fastparquet pyarrow

12
推荐指数
4
解决办法
7916
查看次数

单击 IconButton() 时删除单击效果

IconButton()我目前正在使用以下代码在 Flutter 中创建一个:

IconButton(
  hoverColor: Colors.transparent,
  color: _tweenButton.value,
  icon: Icon(Icons.send),
  onPressed: () => _isComposing ? _handleSubmitted(_textController.text) : null,
)
Run Code Online (Sandbox Code Playgroud)

每当我单击图标按钮时,都会出现如图屏幕截图所示的飞溅/单击效果。MaterialApp()该小部件在和内运行Scaffold()

我怎样才能停用这种视觉效果?

dart flutter

8
推荐指数
1
解决办法
8616
查看次数

使用 dask read_parquet 方法过滤会产生不需要的结果

我正在尝试使用dask read_parquet方法和filterskwarg读取镶木地板文件。但是它有时不会根据给定的条件进行过滤。

示例:使用dates列创建和保存数据框

import pandas as pd
import numpy as np
import dask.dataframe as dd

nums  = range(1,6)
dates = pd.date_range('2018-07-01', periods=5, freq='1d')
df = pd.DataFrame({'dates':dates, 'nums': nums})

ddf = dd.from_pandas(df, npartitions=3).to_parquet('test_par', engine = 'fastparquet')
Run Code Online (Sandbox Code Playgroud)

当我dates'test_par'文件夹中读取和过滤列时,它似乎不起作用

filters=[('dates', '>', np.datetime64('2018-07-04'))]
df  = dd.read_parquet('test_par', engine='fastparquet', filters=filters).compute()
Run Code Online (Sandbox Code Playgroud)

正如您在输出中看到的那样,2018-07-03并且2018-07-04存在。

+-------+------------+------+
|       | dates      | nums |
+-------+------------+------+
| index |            |      |
+-------+------------+------+
| 2     | 2018-07-03 | 3    | …
Run Code Online (Sandbox Code Playgroud)

python filtering dataframe dask fastparquet

7
推荐指数
1
解决办法
2853
查看次数

制作熊猫系列的真正深层副本

我有一个pd.Series每个单元格都是一个列表。我想对它进行深拷贝,但似乎pd.Series.copy只创建了值的浅拷贝(即使deeparg 是True默认值)。

例子

import pandas as pd

sr = pd.Series([list(range(3)), list(range(3))])
sr_c = sr.copy()
sr[0].append(4)
Run Code Online (Sandbox Code Playgroud)

复制pd.Series sr_c的正在转换为

0   [0, 1, 2, 4]
1   [0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

我这样做了,它奏效了:

from copy import deepcopy
sr_c = sr_c.apply(deepcopy)
Run Code Online (Sandbox Code Playgroud)

但这似乎是一个黑客,有没有更好的方法来做到这一点?

python deep-copy pandas

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

on-failure 和unless-stopped 之间 docker 重启策略的区别?

我已阅读泊坞窗,撰写文档有关的容器重新启动策略,但是我不明白之间的差别on-failureunless-stopped

我什么时候会使用一个?在哪些情况下某个策略会导致启动容器而其他策略不会?

restart keep-alive docker docker-compose

6
推荐指数
2
解决办法
4050
查看次数

TypeError:无法将类型“时间戳”与类型“日期”进行比较

问题在第22行

if start_date <= data_entries.iloc[j, 1] <= end_date:

我想比较正在访问熊猫数据帧列的start_dateend_date部分data_entries.iloc[j, 1]。我使用以下方式将列转换为日期时间

data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")

但是我不确定如何将其转换为日期

import pandas as pd
import datetime

entries_csv = "C:\\Users\\Pops\\Desktop\\Entries.csv"

data_entries = pd.read_csv(entries_csv)
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")

start_date = datetime.date(2018, 4, 1)
end_date = datetime.date(2018, 10, 30)

    for j in range(0, len(data_entries)):
        if start_date <= data_entries.iloc[j, 1] <= end_date:
             print('Hello')
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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

Alembic 的 server_default 和 Postgres

我想使用 alembic 运行从 sqlalchemy 模型到另一个模型的迁移。初始模型如下所示:

from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy_utils import UUIDType

class Foo(db.Model):
    __tablename__ = 'foo'
    id = db.Column(UUIDType(binary=True), primary_key=True)
    foo_field = db.Column(JSONB)
Run Code Online (Sandbox Code Playgroud)

我想让它foo_field不可为空:

class Foo(db.Model):
    __tablename__ = 'foo'
    id = db.Column(UUIDType(binary=True), primary_key=True)
    foo_field = db.Column(JSONB, nullable=False)
Run Code Online (Sandbox Code Playgroud)

我想运行 alembic 脚本来更改列,但由于我现有的一些列为foo_field空,所以我想server_default在更改时应用默认值(空字典)

op.alter_column('foo',
         'foo_field',
         existing_type=postgresql.JSONB(astext_type=sa.Text()),
         nullable=False,
         server_default="{}")
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的选项来传递给这个server_default,例如text("{}"),,,,。但它似乎被忽略了,我得到的只是 运行升级时的:lambda: {}{}text("SELECT '{}'")IntegrityError

sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) column "foo_field" contains null values [SQL: 'ALTER TABLE foo ALTER COLUMN foo_field SET …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy alembic

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

pandas to_dict with python native datetime type and not timestamp

I have a pandas DataFrame df that contains Timesatamp columns.

I wish to create an iterator of rows (either via the iter.. methods or via to_dict) from df where the Timesatamp values are python datetime.

I have tried doing this

for col in df.select_dtypes(['datetime']):
        df[col] = df[col].dt.to_pydatetime()
Run Code Online (Sandbox Code Playgroud)

however it seems like the columns is still Timesatamp when using the above mentioned iterator methods. Is there a 'batch'y way to achieve this apart from manualy converting each values when …

python timestamp python-datetime pandas

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

pandas DataFrame 中行的高效成对比较

我目前正在处理一个较小的数据集(大约 900 万行)。不幸的是,大多数条目都是字符串,即使强制类别,框架在内存中也只有几 GB。

我想做的是将每一行与其他行进行比较,并对内容进行直接比较。例如,给定

   A   B     C      D
0 cat blue  old Saturday
1 dog red   old Saturday
Run Code Online (Sandbox Code Playgroud)

我想计算

      d_A   d_B   d_C   d_D
0, 0  True  True  True  True
0, 1  False False True  True
1, 0  False False True  True
1, 1  True  True  True  True
Run Code Online (Sandbox Code Playgroud)

显然,组合爆炸将排除每个记录与其他记录的比较。因此我们可以通过应用 groupby 来使用阻塞,比如在 A 列上。

我的问题是,有没有一种方法可以在 pandas 或 dask 中执行此操作,比以下序列更快:

  1. 按索引分组
  2. 将每个组外连接到自身以生成对
  3. dataframe.apply 比较函数在每行对上

作为参考,假设我可以使用大量的核心(数百个)和大约 200G 的内存。

python pandas dask pandas-groupby

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