小编jba*_*tos的帖子

Django:创建索引:非唯一,多列

鉴于以下模型,我想索引字段(序列,库存)

class QuoteModel(models.Model):  
    quotedate =  models.DateField()  
    high = models.FloatField() #(9,2) DEFAULT NULL,  
    low  = models.FloatField() #(9,2) DEFAULT NULL,  
    close  = models.FloatField() #(9,2) DEFAULT NULL,  
    closeadj  = models.FloatField() #(9,2) DEFAULT NULL,  
    volume  = models.IntegerField() #(9,2) DEFAULT NULL,  
    stock  = models.IntegerField(db_index=True) #(9,2) DEFAULT NULL,  
    open  = models.FloatField() #(9,2) DEFAULT NULL,  
    sequence = models.IntegerField() #(9,2) DEFAULT NULL,  
Run Code Online (Sandbox Code Playgroud)

这个索引应该是非唯一的 - 在mysql中它应该是这样的:

create index ndx_1 on model_quotemodel(sequence,stock);
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一的Django解决方法是创建一个"sql"文件,该文件将在创建表时由django执行.所以,我创建了一个包含以下查询的"stockmodel.sql"(与上面相同:)

create index ndx_1 on model_quotemodel(sequence,stock);
Run Code Online (Sandbox Code Playgroud)

这样做有"更干净"的方法吗?

mysql django indexing

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

Python Pandas:转换 - 从对角线移动值

给定以下DataFrame,分组为:

    dataset = z.groupby(
        ['app', 'regmonth', 'loginsmonth']).sum().unstack().fillna(
            0, inplace=False)


                             cnt                                      
loginsmonth           2014-02-01  2014-03-01  2014-04-01  2014-05-01   
app       regmonth                                                     
1         2014-02-01        6069        1837         107          54   
          2014-03-01           0       10742        2709        1394   
          2014-04-01           0           0        5584        1107   
          2014-05-01           0           0           0        3044   
          2014-06-01           0           0           0           0   
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

                             cnt                                      
loginsmonth           2014-02-01  2014-03-01  2014-04-01  2014-05-01   
app       regmonth                                                     
1         2014-02-01        6069        1837         107          54   
          2014-03-01       10742        2709        1394           0   
          2014-04-01        5584        1107           0           0   
          2014-05-01        3044           0           0           0
          2014-06-01           0           0           0           0   
Run Code Online (Sandbox Code Playgroud)

因此,它将对角线移动到线的开头并用零填充空白.熊猫有没有简单的方法呢?

python matrix pandas

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

大多数pythonic(和有效)的方式将列表成对嵌套

我的清单是:

mylist=[1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

我想将mylist转换为对列表:

[[1,2],[3,4],[5,6]]
Run Code Online (Sandbox Code Playgroud)

有这样做的pythonic方式吗?列表理解?Itertools?

python list-comprehension list python-itertools

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

SQLAlchemy:Joinload +限制

给出以下声明:

p = db.query(Profile).options(joinedload('*')).filter_by(id=p.id).limit(1).one()
Run Code Online (Sandbox Code Playgroud)

我将得到一个子查询+一个联接,而不是一个“纯”联接:

SELECT [...] 
FROM (SELECT profile.id AS profile_id, ...
FROM profile 
WHERE profile.id = %(id_1)s 
LIMIT %(param_1)s) AS anon_1 LEFT OUTER JOIN city AS city_1 ON city_1.id = anon_1.profile_city LEFT OUTER JOIN country AS country_1 ON country_1.id = city_1.country LEFT OUTER JOIN state AS state_1 ON country_1.id = state_1.country LEFT OUTER JOIN state AS state_2 ON state_2.id = city_1.state LEFT OUTER JOIN country AS country_2 ON country_2.id = state_2.country LEFT OUTER JOIN state AS state_3 ON …
Run Code Online (Sandbox Code Playgroud)

python sql sqlalchemy subquery limit

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

Python Pandas Groupby的总和和百分比

给定以下数据框df:

      app       platform    uuid                              minutes
0     1         0  a696ccf9-22cb-428b-adee-95c9a97a4581       67
1     2         0  8e17a2eb-f0ee-49ae-b8c2-c9f9926aa56d        1
2     2         1  40AD6CD1-4A7B-48DD-8815-1829C093A95C       13
3     1         0  26c1022a-7a8e-42a2-b7cc-bea6bffa7a6f        2
4     2         0  34271596-eebb-4423-b890-dc3761ed37ca        8
5     3         1  C57D0F52-B565-4322-85D2-C2798F7CA6FF       16
6     2         0      245501ec2e39cb782bab1fb02d7813b7        1
7     3         1  DE6E4714-5A3C-4C80-BD81-EAACB2364DF0       30
8     3         0  f88eb774-fdf3-4d1d-a91d-0b4ab95cf36e       10
9     2         0  9c08c860-7a6d-4810-a5c3-f3af2a3fcf66      470
10    3         1      19fdaedfd0dbdaf6a7a6b49619f11a19        3
11    3         1  AAF1CFF7-4564-4C79-B2D8-F0AAF9C9971B       58
12    2         0  4eb1024b-c293-42a4-95a2-31b20c3b524b       24
13    3         1  8E0B0BE3-8553-4F38-9837-6C907E01F84C        7
14    3         1  E8B2849C-F050-4DCD-B311-5D57015466AE      465 …
Run Code Online (Sandbox Code Playgroud)

python grouping percentage pandas

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

无法安装lxml(python 2.6.3,osx 10.6雪豹)

我试着:

easy_install lxml

我收到此错误:

在get_ext_filename中输入文件"build/bdist.macosx-10.3-fat/egg/setuptools/command/build_ext.py",第85行KeyError:'etree'

任何提示?

python macos port lxml osx-leopard

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

python Pandas:转换数据帧添加分组列

我有以下数据帧:

    n   startdate     enddate  count
0   1  2014-02-01  2014-02-01   6069
1   1  2014-02-01  2014-03-01   1837
2   1  2014-02-01  2014-04-01    107
3   1  2014-02-01  2014-05-01     54
4   1  2014-03-01  2014-03-01  10742
5   1  2014-03-01  2014-04-01   2709
6   1  2014-03-01  2014-05-01   1387
7   1  2014-04-01  2014-04-01   5584
8   1  2014-04-01  2014-05-01   1103
9   1  2014-05-01  2014-05-01   2970
Run Code Online (Sandbox Code Playgroud)

是否有可能将其转换为类似于:

    n  startdate   2014-02-01  2014-03-01 2014-04-01   2014-05-01
0   1  2014-02-01  6069        1837       107          54
1   1  2014-03-01  0           10742      2709         1387
2   1  2014-04-01  0 …
Run Code Online (Sandbox Code Playgroud)

python dataset pandas

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