小编bla*_*lah的帖子

使用docker-compose在postgresql数据库中创建表

我正在使用docker-compose来部署多容器python Flask Web应用程序.我在构建期间难以理解如何在postgresql数据库中创建表,所以我不必用psql手动添加它们.

我的docker-compose.yml文件是:

web:
  restart: always
  build: ./web
  expose:
    - "8000"
  links:
    - postgres:postgres
  volumes:
    - /usr/src/flask-app/static
  env_file: .env
  command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app

nginx:
  restart: always
  build: ./nginx/
  ports:
    - "80:80"
  volumes:
    - /www/static
  volumes_from:
    - web
  links:
    - web:web

data:
  restart: always
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  command: "true"

postgres:
  restart: always
  image: postgres:latest
  volumes_from:
    - data
  ports:
    - "5432:5432"
Run Code Online (Sandbox Code Playgroud)

我不想输入psql才能输入:

CREATE DATABASE my_database;
CREATE USER this_user WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE …
Run Code Online (Sandbox Code Playgroud)

postgresql docker docker-compose

29
推荐指数
3
解决办法
4万
查看次数

将JSON加载到GeoDataFrame中

我有困难装载包含GIS数据如下JSON(https://data.cityofnewyork.us/resource/5rqd-h5ci.json)成GeoDataFrame.

我尝试设置几何时,以下代码失败.

import requests
import geopandas as gpd
data = requests.get("https://data.cityofnewyork.us/resource/5rqd-h5ci.json")
gdf = gpd.GeoDataFrame(data.json())
gdf = gdf.set_geometry('the_geom')
gdf.head()
Run Code Online (Sandbox Code Playgroud)

python gis json geojson geopandas

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

我是否需要将项目目录添加到每个脚本中的系统路径以从另一个目录导入函数?

我正在努力保持数据科学项目组织良好,所以我在我的src目录中创建了一个目录,其中包含utils一个名为的文件helpers.py,其中包含一些将在许多脚本中使用的辅助函数.我应该如何func_namesrc/utils/helpers.py一个完全不同的目录中导入文件的最佳实践是什么,例如src/processing/clean_data.py

我看到了这个问题的答案,我已经实现了一个有效的解决方案,但这感觉很难看:

 sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?我是否需要将此添加到每个要导入的脚本中func_name,例如train_model.py

我当前的项目文件夹结构:

myproject
    /notebooks
        notebook.ipynb
    /src
        /processing
            clean_data.py
        /utils
            helpers.py
        /models
            train_model.py
        __init__.py
Run Code Online (Sandbox Code Playgroud)

示例文件:

# clean_data.py

import os
import sys

sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
from src.utils.helpers import func_name

func_name()


# helpers.py

def func_name():
    print('I'm a helper function.')
Run Code Online (Sandbox Code Playgroud)

python

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

我用什么scipy统计测试来比较样本均值?

假设样本量不相等,在下列情况下我会用什么样的测试来比较样本均值(如果以下任何一种情况不正确,请更正):

正态分布=真方差齐性=真

scipy.stats.ttest_ind(sample_1, sample_2)
Run Code Online (Sandbox Code Playgroud)

正态分布=真方差齐性=假

scipy.stats.ttest_ind(sample_1, sample_2, equal_var = False)
Run Code Online (Sandbox Code Playgroud)

正态分布=假方差的均匀性=真

scipy.stats.mannwhitneyu(sample_1, sample_2)
Run Code Online (Sandbox Code Playgroud)

正态分布=假方差齐性=假

???
Run Code Online (Sandbox Code Playgroud)

python statistics numpy scipy

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

VBA Userform文本框默认值并突出显示

在我的UserForm中,我想为我的TextBox设置一个默认值,在聚焦时会突出显示.

Private Sub UserForm_Initialize()

NameTextBox.Value = "Your Name Here"

NameTextBox.SetFocus

End Sub
Run Code Online (Sandbox Code Playgroud)

当此代码运行时,光标应设置在默认文本的末尾,即"...... Here"之后.我希望突出显示"Your Name Here",以便在生成表单时,用户可以开始替换该默认/占位符文本.

你能帮我写代码来设置可编辑的默认值吗?

excel vba textbox userform

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

ProcessPoolExecutor日志记录无法在Windows上记录内部函数,但在Unix/Mac上无法记录

当我在Windows计算机上运行以下脚本时,我没有看到该log_pid函数的任何日志消息,但是当我在Unix/Mac上运行时,我会这样做.我之前已经读过,与Mac相比,Windows上的多处理方式不同,但我不清楚应该做些什么更改才能让这个脚本在Windows上运行.我正在运行Python 3.6.

import logging
import sys
from concurrent.futures import ProcessPoolExecutor
import os


def log_pid(x):
    logger.info('Executing on process: %s' % os.getpid())


def do_stuff():
    logger.info('this is the do stuff function.')
    with ProcessPoolExecutor(max_workers=4) as executor:
        executor.map(log_pid, range(0, 10))


def main():
    logger.info('this is the main function.')
    do_stuff()


if __name__ == '__main__':
    logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
    logger = logging.getLogger(__name__)

    logger.info('Start of script ...')

    main()

    logger.info('End of script ...')
Run Code Online (Sandbox Code Playgroud)

python multiprocessing concurrent.futures

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

Pandas 数据框分组并组合多个行值

如果标题不清楚,我深表歉意,但我很难表达这个问题。如果我只是展示我想做的事情,那可能是最好的。

一些上下文:我解析了一个文档的名称,并将每个名称与它出现的页码一起存储。我需要转换 DataFrame 以便每个名称都有一行,页码列组合了名称出现的所有页面。我认为这需要 GroupBy,但我不完全确定。

我目前的数据:

data = np.array([['John', 'Smith', 1], ['John', 'Smith', 7], ['Eric', 'Adams', 9], ['Jane', 'Doe', 14], ['Jane', 'Doe', 16], ['John', 'Smith', 19]])

pd.DataFrame(data, columns=['FIRST_NM', 'LAST_NM', 'PAGE_NUM'])

  FIRST_NM LAST_NM PAGE_NUM
0     John   Smith        1
1     John   Smith        7
2     Eric   Adams        9
3     Jane     Doe       14
4     Jane     Doe       16
5     John   Smith       19
Run Code Online (Sandbox Code Playgroud)

所需的数据帧:

  FIRST_NM LAST_NM PAGE_NUM
0     John   Smith   1,7,19
1     Eric   Adams        9
2     Jane     Doe    14,16
Run Code Online (Sandbox Code Playgroud)

python pandas

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

我在哪里可以找到烧瓶中的芹菜原木?

我正在开发一个运行python脚本的简单Web应用程序,大约需要5-10分钟.我没有让用户在网站上等待,而是使用Celery在后台运行作业,并在脚本完成时向用户发送电子邮件通知.

我的问题很简单:Celery的日志工作在哪里?目前,如果作业因为遇到致命错误而失败,我无从得知.

芹菜日志文件显示如何设置日志,但它并不完全清楚,我在那里我可以访问日志(我想保存为一个文件)工作完成后.

app.py

#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, render_template, request, flash, send_file, redirect, url_for    
from werkzeug import secure_filename
import logging
from logging import Formatter, FileHandler
from forms import *

import my_module
from tasks import make_celery
from celery.utils.log import get_task_logger


#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)
app.config.from_object('config')

celery = make_celery(app)
logger = get_task_logger(__name__)

format = "%(asctime)s - [%(levelname)s] %(message)s"
logging.basicConfig(filename='app-errors.log', 
                    filemode='a',
                    format=format,
                    level=logging.DEBUG)
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
logging.getLogger(__name__).addHandler(console)

#----------------------------------------------------------------------------#
# Controllers.
#----------------------------------------------------------------------------#

@celery.task …
Run Code Online (Sandbox Code Playgroud)

python celery flask

5
推荐指数
0
解决办法
2026
查看次数

使用pandas创建虚拟变量时,Jupyter笔记本内核会死掉

我正在参加Walmart Kaggle比赛,我正在尝试创建一个"FinelineNumber"栏目的虚拟列.对于上下文,df.shape返回(647054, 7).我正在尝试制作一个虚拟列df['FinelineNumber'],它有5,196个唯一值.结果应该是形状的数据框(647054, 5196),然后我计划到concat原始数据框.

几乎每次我运行时fineline_dummies = pd.get_dummies(df['FinelineNumber'], prefix='fl'),我得到以下错误消息The kernel appears to have died. It will restart automatically.我在具有16GB RAM的MacBookPro上的jupyter笔记本中运行python 2.7.

有人可以解释为什么会发生这种情况(以及为什么它发生在大多数时间但不是每次都发生)?它是一个jupyter笔记本或熊猫bug?此外,我认为它可能与RAM不足,但我在具有> 100 GB RAM的Microsoft Azure机器学习笔记本上得到相同的错误.在Azure ML上,内核每次都会死掉 - 几乎立刻就会死掉.

python pandas ipython-notebook azure-machine-learning-studio

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

对熊猫数据框列表求和

有没有一种方法可以使用类似于的语法来汇总多个pandas DataFrame pd.concat([df1, df2, df3, df4])。我从文档中知道我可以做df1.sum(df2, fill_value=0),但是我有一长串需要汇总的DataFrame,并且想知道是否可以在不编写循环的情况下做到。

有点相关的问题/答案:熊猫求和多个数据帧(堆栈溢出)

结果应为以下示例:

idx1 = pd.MultiIndex.from_tuples([('a', 'A'), ('a', 'B'), ('b', 'A'), ('b', 'D')])
idx2 = pd.MultiIndex.from_tuples([('a', 'A'), ('a', 'C'), ('b', 'A'), ('b', 'C')])
idx3 = pd.MultiIndex.from_tuples([('a', 'A'), ('a', 'D'), ('b', 'A'), ('b', 'C')])

np.random.seed([3,1415])
df1 = pd.DataFrame(np.random.randn(4, 1), idx1, ['val'])
df2 = pd.DataFrame(np.random.randn(4, 1), idx2, ['val'])
df3 = pd.DataFrame(np.random.randn(4, 1), idx3, ['val'])
Run Code Online (Sandbox Code Playgroud)

df1

在此处输入图片说明

df2

在此处输入图片说明

df3

在此处输入图片说明

结果应如下所示:

在此处输入图片说明

python dataframe pandas

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