我有一个时间序列数据的数据框,其中的数值数据在列中。在绘制此数据时,我只想绘制某些被认为不足的序列。这是我选择要绘制的列的方式:
df.loc[:, (df.iloc[-1] >= 100) & (df.sum() >= 1000)]
Run Code Online (Sandbox Code Playgroud)
换句话说,“显着”的标准是一系列值的总和超过1000,而最近的值至少为100。
然而,事实证明这是不够的。我需要的是,总和超过1000(和以前一样),但是我希望最后两行(两个最近的读数)的平均值超过100。
如何更改上面的滤波器以计算平均值?
在:
date A B C D
2016-04-01 80 235 99 0
2016-04-02 85 295 153 14
2016-04-03 111 363 224 14
2016-04-04 111 379 296 50
2016-04-05 11 51 29 5
Run Code Online (Sandbox Code Playgroud)
出:
date B C
2016-04-01 235 99
2016-04-02 295 153
2016-04-03 363 224
2016-04-04 379 296
2016-04-05 51 29
Run Code Online (Sandbox Code Playgroud) 是否有一种惯用的方法来获取列中线性趋势线拟合值的斜率DataFrame?数据用DateTime索引编制索引。
我正在尝试删除96k记录.
此查询返回91k记录:
SELECT *
FROM xoops_bb_posts_text t
WHERE not exists (
select post_id
from xoops_bb_posts p
WHERE p.post_id = t.post_id
);
Run Code Online (Sandbox Code Playgroud)
当我试图删除那些记录时,我得到了语法错误,但我没有看到它.
DELETE FROM xoops_bb_posts_text t
WHERE not exists (
select post_id
from xoops_bb_posts p
WHERE p.post_id = t.post_id
);
Run Code Online (Sandbox Code Playgroud)
错误在哪里?
错误
SQL查询:文档
DELETE FROM xoops_bb_posts_text t
WHERE NOT EXISTS (
SELECT post_id
FROM xoops_bb_posts p
WHERE p.post_id = t.post_id
)
Run Code Online (Sandbox Code Playgroud)
MySQL说:文档
#1064 - 您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在'WHERE not exists'附近使用正确的语法(从第2行的xoops_bb_posts p WHERE p.post_id = t.post_中选择post_id)
python中的以下代码:
matrix = [[0]*3]*2
matrix[0][1] = 1
Run Code Online (Sandbox Code Playgroud)
看到要改变所有matrix[][1]位置的值,矩阵变为
[[0,1,0],[0,1,0]]代替[[0,1,0],[0,0,0]].
这是变量如何初始化的问题,或者是python中的默认行为.
另外,我如何一次只更改一个值.
我有一个非常具体的问题,我需要知道如何交换列表或元组中的元素.我有一个名为board state的列表,我知道需要交换的元素.我该如何交换它们?在具有二维数组的java中,我可以轻松地执行标准交换技术,但是在这里它说元组赋值是不可能的.
这是我的代码:
board_state = [(0, 1, 2), (3, 4, 5), (6, 7, 8)]
new = [1, 1] # [row, column] The '4' element here needs to be swapped with original
original = [2, 1] # [row, column] The '7' element here needs to be swapped with new
Run Code Online (Sandbox Code Playgroud)
结果应该是:
board_state = [(0, 1, 2), (3, 7, 5), (6, 4, 8)]
Run Code Online (Sandbox Code Playgroud)
我如何交换?
我想插入一个这样的列表,但要大得多。
list=[{"name":"Tom","gender":"male",},{"name":"Jack","gender":"male",},{"name":"Lee","gender":"male",}]使用python进入MySQL,建表。我已经导入了 MySQLdb 。那我该怎么办?
以下查询执行得很糟糕,因为P4FileReleases中有650万条记录的完整非聚集索引扫描,后跟散列连接.我正在寻找优化器通过搜索选择扫描的可能原因.
SELECT p4f.FileReleaseID
FROM P4FileReleases p4f
INNER JOIN AnalyzedFileView af
ON p4f.FileRelease = (af.path+'#'+cast(af.revision as varchar))
WHERE (af.tracked_change_id = 1)
Run Code Online (Sandbox Code Playgroud)
据我所知,我认为优化器没有理由选择P4FileReleases的扫描.WHERE子句将右侧数据集的大小限制为大约1K的记录,优化器应该知道它(参见下面的直方图).
事实上,如果我获取视图数据并将其扔入堆表(与索引视图相同的结构),则执行查询,在较大的表上使用索引搜索,而不是使用散列连接(和总成本从145降至1左右.
关于什么可能抛出优化器的任何想法?
细节. Sql Server 2008(v.10.0.2757.0).
P4FileReleases表 持有650万条记录
CREATE TABLE [dbo].[P4FileReleases](
[FileReleaseID] [int] IDENTITY(1,1) NOT NULL,
[FileRelease] [varchar](254) NOT NULL,
-- 5 more fields
CONSTRAINT [CIX_P4FileReleases_FileReleaseID_PK] PRIMARY KEY CLUSTERED
(
[FileReleaseID] ASC
),
CONSTRAINT [NCIX_P4FileReleases_FileRelease] UNIQUE NONCLUSTERED
(
[FileRelease] ASC
)
Run Code Online (Sandbox Code Playgroud)
AnalyzedFileView 是一个索引视图,其中包含统计信息并且已启用最新信息.
它有四列:
key int (int, PK) - clustered index
tracked_change_id (int, FK) - non-unique, non-clustered index (covering …Run Code Online (Sandbox Code Playgroud) pd.DataFrame({'A':[None,2,None,None,3,4],'B':[1,2,3,4,5,6]})
A B
0 NaN 1
1 2 2
2 NaN 3
3 NaN 4
4 3 5
5 4 6
Run Code Online (Sandbox Code Playgroud)
如果不是NaN,我如何添加C将从列中取值的列A,否则列B的值?
A B C
0 NaN 1 1
1 2 2 2
2 NaN 3 3
3 NaN 4 4
4 3 5 3
5 4 6 4
Run Code Online (Sandbox Code Playgroud) 从这样的数据开始:
np.random.seed(314)
df = pd.DataFrame({
'date':[pd.date_range('2016-04-01', '2016-04-05')[r] for r in np.random.randint(0,5,20)],
'cat':['ABCD'[r] for r in np.random.randint(0,4,20)],
'count': np.random.randint(0,100,20)
})
cat count date
0 B 84 2016-04-04
1 A 95 2016-04-05
2 D 89 2016-04-02
3 D 39 2016-04-05
4 A 39 2016-04-01
5 C 61 2016-04-05
6 C 58 2016-04-04
7 B 49 2016-04-03
8 D 20 2016-04-02
9 B 54 2016-04-01
10 B 87 2016-04-01
11 D 36 2016-04-05
12 C 13 2016-04-05
13 A 79 2016-04-04
14 B …Run Code Online (Sandbox Code Playgroud) 我需要一种方法将2000万个32位和64位整数转换成相应的位数组(因此这必须是内存/时间效率).根据SO 的不同问题/答案的建议,我试图通过使用来做到这一点numpy.unpackbits.在尝试这种方法时,我遇到了意想不到的结果:
np.unpackbits(np.array([1], dtype=np.uint64).view(np.uint8))
Run Code Online (Sandbox Code Playgroud)
生产:
array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)
我希望1元素是最后一个元素,但不是中间元素.所以我显然遗漏了保留字节顺序的东西.我错过了什么?
python ×7
pandas ×4
mysql ×2
numpy ×2
dataframe ×1
matrix ×1
python-3.x ×1
sql ×1
sql-server ×1
t-sql ×1