小编use*_*329的帖子

熊猫:选择具有特定月份和日期的所有日期

我有一个充满日期的数据框,我想选择月份== 12和日期== 25的所有日期,并添加用xmas1 替换列中的零.

无论如何要做到这一点?我的代码的第二行错误了.

df = DataFrame({'date':[datetime(2013,1,1).date() + timedelta(days=i) for i in range(0,365*2)], 'xmas':np.zeros(365*2)})

df[df['date'].month==12 and df['date'].day==25] = 1
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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

在pandas groupby之后缺少专栏

我有一个熊猫数据帧df.我将它分为3列,并计算结果.当我这样做时,我会丢失一些信息,特别是name列.此列与desk_id列以1:1映射.无论如何都要在我的最终数据框中包含两者吗?

这是数据帧:

   shift_id    shift_start_time      shift_end_time        name                   end_time       desk_id  shift_hour
0  37423064 2014-01-17 08:00:00 2014-01-17 12:00:00  Adam Scott 2014-01-17 10:16:41.040000  15557987           2
1  37423064 2014-01-17 08:00:00 2014-01-17 12:00:00  Adam Scott 2014-01-17 10:16:41.096000  15557987           2
2  37423064 2014-01-17 08:00:00 2014-01-17 12:00:00  Adam Scott 2014-01-17 10:52:17.402000  15557987           2
3  37423064 2014-01-17 08:00:00 2014-01-17 12:00:00  Adam Scott 2014-01-17 11:06:59.083000  15557987           3
4  37423064 2014-01-17 08:00:00 2014-01-17 12:00:00  Adam Scott 2014-01-17 08:27:57.998000  15557987           0
Run Code Online (Sandbox Code Playgroud)

我这样分组:

grouped = df.groupby(['desk_id', 'shift_id', …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas

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

sqlalchemy:在datetime列上应用类似SQL的date()函数

我想按日期分组,并id使用sqlalchemy 计算结果的数量.

不幸的是,我的包含日期信息的列created_datetime是一个日期时间,我想使用类似的SQL函数

group by date(created_datetime)

为了按日期分组.

这是我到目前为止所拥有的......

conn = engine.connect()

s = my_db.my_table.alias()

q = select([s.c.id]).\
    group_by(s.c.created_datetime).\
    count()

result = conn.execute(q)

for i in result:
    print(i)

conn.close()
Run Code Online (Sandbox Code Playgroud)

python sql sqlalchemy

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

将行添加到 pandas 数据框中的组

我有一个 pandas 数据框df。像这样创建:

a = np.array([0,0,0,1,1,1,2,2,2]).T

bcd = np.array([np.arange(1,10)]*3).T

df = pd.DataFrame(bcd, columns=["b","c","d"])

df["a"] = a
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

     b   c   d   a
0    1   1   1   0
1    2   2   2   0
2    3   3   3   0
3    4   4   4   1
4    5   5   5   1
5    6   6   6   1
6    7   7   7   2
7    8   8   8   2
8    9   9   9   2
Run Code Online (Sandbox Code Playgroud)

我想在 column 中的每个分组之后插入 3 行'a'。具体来说,我想在列中进行一些自动增量'b',并将None对象放在其他地方:类似:

     b …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas

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

API捕获所有分页数据?(蟒蛇)

我正在使用请求包来访问API(greenhouse.io)。该API是分页的,因此我需要遍历页面以获取所需的所有数据。使用类似:

results = []
for i in range(1,326+1):
    response = requests.get(url, 
                            auth=(username, password), 
                            params={'page':i,'per_page':100})
    if response.status_code == 200:
        results += response.json()
Run Code Online (Sandbox Code Playgroud)

我知道通过点击headers属性有326页:

In [8]:
response.headers['link']
Out[8]:
'<https://harvest.greenhouse.io/v1/applications?page=3&per_page=100>; rel="next",<https://harvest.greenhouse.io/v1/applications?page=1&per_page=100>; rel="prev",<https://harvest.greenhouse.io/v1/applications?page=326&per_page=100>; rel="last"'
Run Code Online (Sandbox Code Playgroud)

有什么方法可以自动提取此数字?使用请求包?还是我需要使用正则表达式或其他东西?

另外,我是否应该以某种方式使用while循环来获取所有这些数据?什么是最好的方法?有什么想法吗?

python regex api pagination

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

"交叉产品",但提升到指数而不是乘以

我有两个向量.我想要一个"交叉乘积"-esque函数,它将从第一个向量中获取每个值,并将其提升到第二个向量中每个值的指数,返回一个矩阵.有没有内置于numpy的东西呢?它可以通过循环完成,但我正在寻找一些有效的东西.

例如:

>>> cross_exp([1,2], [3,4]) 
[[1, 1],[8, 16]]
Run Code Online (Sandbox Code Playgroud)

python numpy matrix cross-product

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

numpy数组到置换矩阵

np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)

我有阵容.我想把它变成一个numpy数组,每个1:1排列的元组.像这样:

np.array([
    [(1,1),(1,2),(1,3)],
    [(2,1),(2,2),(2,3)],
    [(3,1),(3,2),(3,3)],
])
Run Code Online (Sandbox Code Playgroud)

有关如何有效地做到这一点的任何想法?我需要做几百万次这个操作.

python arrays performance numpy permutation

3
推荐指数
2
解决办法
4618
查看次数

MySQL字符串操作

我有一个数据库,列中列出了一堆ip地址.我想在每次发生ip地址时计算.但是我希望删除ip地址中最后一个句点后的所有数字,并按结果分组.所以对于像这样的IP地址192.178.168.2,我想分组192.178.168.同样,192.178.168.234将按分组192.178.168.

我该如何进行这种类型的字符串操作?

select count(*)
from tbl t
group by t.ip_address
order by count(*) desc
limit 10
;
Run Code Online (Sandbox Code Playgroud)

mysql sql string

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