小编use*_*309的帖子

如何在python项目之间共享代码?

假设我有两个具有以下结构的项目:

/项目1
/项目2

现在我开发了一个对这两个项目都有用的函数/类。我想把它放在 project1/project2 目录之外的某个地方,并将它作为一个单独的项目进行维护。所以我可能需要这样的结构:

/项目1
/项目2
/共享

如果我将辅助函数/类放在共享文件夹中的项目中,如何从 project1/project2 使用它们?

目前我的选择是在 project1/project2 中使用 sys.path.append('/shared') ,然后从共享文件夹导入。

有没有更多的pythonic方法来做同样的事情?

shared-libraries python-3.x

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

pandas groupby 并在每组以 1 开头的组内排名

我有一个数据框:

将 pandas 导入为 pd

df = pd.DataFrame([[1, 'a'],
                    [1, 'a'],
                    [1, 'b'],
                    [1, 'a'],
                    [2, 'a'],
                    [2, 'b'],
                    [2, 'a'],
                    [2, 'b'],
                    [3, 'b'],
                    [3, 'a'],
                    [3, 'b'],

                   ], columns=['session', 'issue'])
df
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想对会议中的问题进行排名。我尝试过:

df.groupby(['session', 'issue']).size().rank(ascending=False, method='dense')

session  issue
1        a        1.0
         b        3.0
2        a        2.0
         b        2.0
3        a        3.0
         b        2.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

我需要的是这样的结果:

  1. 对于组会话 = 1,有 3 个 a 问题和 1 个 b 问题,因此对于组 1,排名为 a = 1 和 b = 2
  2. 对于组会话=2,两个等级相等,因此它们的等级应该相同= 1
  3. 对于小组会议=3,有 b …

python size group-by rank pandas

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

如何在seaborn中设置日期时间xlim

我有一个数据框:

df = pd.DataFrame({"max_cr_date":{"0":1569115380000,"1":1569115500000,"2":1569115560000,"3":1569115620000,"4":1569115680000,"5":1569115740000,"6":1569115800000,"7":1569115860000,"8":1569115920000,"9":1569115980000,"10":1569116040000,"11":1569116100000,"12":1569116160000,"13":1569116220000,"14":1569130800000,"15":1569130800000,"16":1569130800000,"17":1569130800000,"18":1569130860000,"19":1569130860000,"20":1569130860000,"21":1569130860000,"22":1569131100000,"23":1569131100000,"24":1569131160000,"25":1569131160000,"26":1569131220000,"27":1569131220000,"28":1569131280000,"29":1569131280000,"30":1569131340000,"31":1569131340000,"32":1569131400000,"33":1569131400000,"34":1569131460000,"35":1569131460000,"36":1569131520000,"37":1569131520000,"38":1569131580000,"39":1569131580000,"40":1569131640000,"41":1569131640000,"42":1569131700000,"43":1569131700000},"cnt":{"0":14,"1":14,"2":14,"3":14,"4":14,"5":14,"6":14,"7":14,"8":14,"9":14,"10":14,"11":14,"12":14,"13":14,"14":11,"15":12,"16":13,"17":14,"18":11,"19":12,"20":13,"21":14,"22":11,"23":12,"24":11,"25":12,"26":11,"27":12,"28":11,"29":12,"30":11,"31":12,"32":11,"33":12,"34":11,"35":12,"36":11,"37":12,"38":11,"39":12,"40":11,"41":12,"42":11,"43":12},"uuid":{"0":80,"1":66,"2":70,"3":80,"4":72,"5":110,"6":358,"7":123,"8":110,"9":123,"10":96,"11":89,"12":83,"13":58,"14":7,"15":28,"16":9,"17":5,"18":129,"19":116,"20":266,"21":87,"22":57,"23":86,"24":99,"25":36,"26":89,"27":30,"28":88,"29":18,"30":75,"31":26,"32":94,"33":29,"34":81,"35":32,"36":64,"37":19,"38":74,"39":26,"40":77,"41":17,"42":51,"43":21}})
df.max_cr_date = pd.to_datetime(df.max_cr_date, unit='ms')
df
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

df.max_cr_date.agg(['min', 'max'])

min   2019-09-22 01:23:00
max   2019-09-22 05:55:00
Name: max_cr_date, dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 seaborn 绘制数据框时,我得到了错误的 xlim。例如,max_cr_date 范围是从 2019-09-22 01:23:00 到 2019-09-22 05:55:00,但在图表上您可以看到 2000 年、2004 年...

在此处输入图片说明

如何将 xlim 设置为 max_cr_date 列的最小值/最大值?

问候。

python matplotlib scatter-plot seaborn

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

python asyncio如何读取StdIn并写入StdOut?

我需要异步读取 StdIn 以获取消息(json 由 \r\n 终止),并在处理异步后将更新的消息写入 StdOut。

目前我正在同步进行,例如:

class SyncIOStdInOut():
    def write(self, payload: str):
        sys.stdout.write(payload)
        sys.stdout.write('\r\n')
        sys.stdout.flush()

    def read(self) -> str:
        payload=sys.stdin.readline()
        return  payload
Run Code Online (Sandbox Code Playgroud)

如何执行相同但异步的操作?

python stdin stdout python-asyncio

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

Python pandas 按枚举类值对数据帧进行排序

如果我有枚举类:

from enum import Enum
class Colors(Enum):
    RED = 1
    ORANGE = 2
    GREEN = 3
Run Code Online (Sandbox Code Playgroud)

如果我有一个数据框,它的一列是颜色(它可以是小写的):

>>> import pandas as pd
>>> df = pd.DataFrame({'X':['A', 'B', 'C', 'A'], 'color' : ['GREEN', 'RED', 'ORANGE', 'ORANGE']})
>>> df
   X   color
0  A   GREEN
1  B     RED
2  C  ORANGE
3  A  ORANGE
Run Code Online (Sandbox Code Playgroud)

如何将颜色列作为尊重颜色类值的分类类型,并按“颜色”和“X”(升序)对数据框进行排序?

例如,上面的数据框应该排序为:

X, color
--------
B, RED
A, ORANGE
C, ORANGE
A, GREEN
Run Code Online (Sandbox Code Playgroud)

sorting enums python-3.x pandas categorical-data

4
推荐指数
2
解决办法
1633
查看次数

将熊猫系列单元格转换为字符串和日期时间对象

我已经对熊猫数据框进行了切片。

end_date = df[-1:]['end'] 

type(end_date) 
Out[4]: pandas.core.series.Series 

end_date 
Out[3]: 
48173   2017-09-20 04:47:59 
Name: end, dtype: datetime64[ns] 
Run Code Online (Sandbox Code Playgroud)
  1. 如何摆脱end_date的索引值48173并只获取2017-09-20 04:47:59字符串?我必须使用2017-09-20 04:47:59作为参数来调用 REST API ,所以我必须从 Pandasdatetime64系列中获取字符串。
  2. 如何摆脱 end_date 的索引值48173并只获取​​ datetime 对象 [类似的东西datetime.datetime.strptime('2017-09-20 04:47:59', '%Y-%m-%d %H:%M:%S')]。我需要它,因为稍后我将不得不检查是否'2017-09-20 04:47:59' < datetime.datetime(2017,1,9)

我只需要转换一个单元格值,而不是整列。如何进行这些转换?

python type-conversion pandas datetime64

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