我有一个充满日期的数据框,我想选择月份== 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) 我有一个熊猫数据帧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) 我想按日期分组,并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) 我有一个 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) 我正在使用请求包来访问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循环来获取所有这些数据?什么是最好的方法?有什么想法吗?
我有两个向量.我想要一个"交叉乘积"-esque函数,它将从第一个向量中获取每个值,并将其提升到第二个向量中每个值的指数,返回一个矩阵.有没有内置于numpy的东西呢?它可以通过循环完成,但我正在寻找一些有效的东西.
例如:
>>> cross_exp([1,2], [3,4])
[[1, 1],[8, 16]]
Run Code Online (Sandbox Code Playgroud) 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)
有关如何有效地做到这一点的任何想法?我需要做几百万次这个操作.
我有一个数据库,列中列出了一堆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) python ×7
pandas ×3
dataframe ×2
group-by ×2
numpy ×2
sql ×2
api ×1
arrays ×1
datetime ×1
matrix ×1
mysql ×1
pagination ×1
performance ×1
permutation ×1
regex ×1
sqlalchemy ×1
string ×1