标签: join

pandas三向连接列上的多个数据帧

我有3个CSV文件.每个都有第一列作为人的(字符串)名称,而每个数据框中的所有其他列都是该人的属性.

如何将所有三个CSV文档"连接"在一起以创建单个CSV,每行具有该人员字符串名称的每个唯一值的所有属性?

join()pandas中的函数指定我需要一个多索引,但我对层次索引方案与基于单个索引进行连接有什么关系感到困惑.

python merge join pandas

162
推荐指数
9
解决办法
20万
查看次数

JOIN查询与多个查询

JOIN查询比几个查询更快吗?(您运行主查询,然后根据主查询的结果运行许多其他SELECT)

我问,因为加入它们会使我的应用程序的设计变得复杂

如果它们更快,那么任何人都可以近似粗略估计多少?如果它是1.5倍我不在乎,但如果它是10倍我想我做.

mysql database join query-optimization

160
推荐指数
11
解决办法
9万
查看次数

在python中构建完整路径文件名,

我需要将文件路径名传递给模块,该模块创建报告文档为pdf,html等.如何从目录名,基本文件名和fileformat字符串构建文件路径名?

在通话时该目录可能存在也可能不存在

例如

dir_name='/home/me/dev/my_reports'
base_filename='daily_report'
format = 'pdf'
Run Code Online (Sandbox Code Playgroud)

我需要创建一个字符串 '/home/me/dev/my_reports/daily_report.pdf'

手动连接片段似乎不是一个好方法.我试过os.path.join

join(dir_name,base_filename,format)
Run Code Online (Sandbox Code Playgroud)

但它给了

/home/me/dev/my_reports/daily_report/pdf
Run Code Online (Sandbox Code Playgroud)

python filenames join

159
推荐指数
3
解决办法
19万
查看次数

Hibernate中JOIN和JOIN FETCH之间的区别

请帮助我了解在哪里使用常规JOIN以及JOIN FETCH的位置.

例如,如果我们有这两个查询

FROM Employee emp
JOIN emp.department dep
Run Code Online (Sandbox Code Playgroud)

FROM Employee emp
JOIN FETCH emp.department dep
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别吗?如果是的话,哪一个使用的时候?

java hibernate join hql fetch

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

子查询与连接

我重构了一个从另一家公司继承的应用程序的缓慢部分,以使用内部连接而不是子查询

WHERE id IN (SELECT id FROM ...)
Run Code Online (Sandbox Code Playgroud)

重构的查询运行速度提高了约100倍.(约50秒到约0.3)我预计会有所改善,但任何人都可以解释为什么它如此激烈?where子句中使用的列都已编入索引.SQL是否每行执行一次where子句中的查询?

更新 - 解释结果:

不同之处在于"where in in()"查询的第二部分 -

2   DEPENDENT SUBQUERY  submission_tags ref st_tag_id   st_tag_id   4   const   2966    Using where
Run Code Online (Sandbox Code Playgroud)

vs 1带连接的索引行:

    SIMPLE  s   eq_ref  PRIMARY PRIMARY 4   newsladder_production.st.submission_id  1   Using index
Run Code Online (Sandbox Code Playgroud)

mysql sql performance database-design join

157
推荐指数
9
解决办法
6万
查看次数

为什么pandas在python中的合并速度比2012年R中的data.table合并更快?

我最近遇到了python 的pandas库,根据这个基准测试执行非常快速的内存中合并.它甚至比R中的data.table包更快(我选择用于分析的语言).

为什么pandas这么快data.table?是因为python具有超过R的固有速度优势,还是有一些我不知道的权衡?有没有办法在data.table不诉诸merge(X, Y, all=FALSE)和执行内部和外部联接的情况下merge(X, Y, all=TRUE)

对照

这是用于对各种包进行基准测试的R代码Python代码.

python join r pandas data.table

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

JOIN两个SELECT语句结果

是否可以在一个语句中加入2个sql SELECT语句的结果?我有任务的数据库,其中每个记录是一个单独的任务,最后期限(和P替换,这仅仅是一个从开始到最后期限的天INT,年龄也是天的INT数.)

我想有哪个人都有每个人的桌子上,他们有任务的数量,以及他们有LATE任务数表(如果有的话).

我可以轻松地在单独的表中获取这些数据,如下所示:

SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks
Run Code Online (Sandbox Code Playgroud)

返回数据如:

ks        # Tasks
person1   7
person2   3
Run Code Online (Sandbox Code Playgroud)

然后我有

SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks
Run Code Online (Sandbox Code Playgroud)

返回:

ks        # Late
person1   1
person2   1
Run Code Online (Sandbox Code Playgroud)

我想加入这两个选择语句的结果(由KS提供)

我试图避免使用临时表,但如果这是唯一可行的方法,我想了解更多关于以这种方式使用临时表的信息.

我也尝试做某种count()#行满足条件,但我也想不出怎么做.如果可能的话,那也会奏效.

附录:对不起,我希望我的结果包含KS,Tasks和Late的列

KS        # Tasks   # Late
person1   7         1
person2   3         1
person3   2         0  (or null)
Run Code Online (Sandbox Code Playgroud)

另外,即使他们没有迟到的任务,我也希望一个人出现.

SUM(年龄> Palt THEN 1 ELSE 0 END)后期效果很好,感谢您的回答!

两个select语句也可以工作,使用LEFT JOIN加入它们也可以工作,我现在明白了如何以这种方式连接多个选择.谢谢!

sql select join group-by

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

无法创建类型的常量值此上下文仅支持基元类型或枚举类型

我在下面的查询中收到此错误

无法创建类型的常量值API.Models.PersonProtocol.在此上下文中仅支持基元类型或枚举类型

ppCombined下面是一个IEnumerable对象PersonProtocolType,由2个PersonProtocol列表的concat构成.

为什么这会失败?我们不能使用LINQ JOIN条款里面SELECTJOIN

var persons = db.Favorites
    .Where(x => x.userId == userId)
    .Join(db.Person, x => x.personId, y => y.personId, (x, y) =>
        new PersonDTO
        {
            personId = y.personId,
            addressId = y.addressId,                   
            favoriteId = x.favoriteId,
            personProtocol = (ICollection<PersonProtocol>) ppCombined
                .Where(a => a.personId == x.personId)
                .Select( b => new PersonProtocol()
                 {
                     personProtocolId = b.personProtocolId,
                     activateDt = b.activateDt,
                     personId = b.personId
                 })
        });
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework join

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

MySQL:连接类型的快速细分

我想快速细分一下MySQL连接的类型.我知道这些,其余的我不确定他们的意思.

  • 逗号分隔(究竟是什么缩写?):SELECT * FROM a, b WHERE b.id = a.beeId AND ...
  • 显示来自a的信息,即使b中没有匹配: SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ...

我已经看过其他联接,但想知道是什么让它们与众不同,什么是INNER/ OUTER,添加LEFT改变的东西.

我已经知道联接是如何工作的,我只是想知道是否存在其他类型的连接,或者它们是否只是获得相同结果的不同方式.

mysql join

149
推荐指数
4
解决办法
13万
查看次数

Oracle"(+)"运算符

我正在检查一些旧的SQL语句,以便记录它们并可能增强它们.

DBMS是Oracle

我不明白这样的陈述:

select ...
from a,b
where a.id=b.id(+)
Run Code Online (Sandbox Code Playgroud)

我对(+)操作员感到困惑,并且无法在任何论坛上得到它...(在引号内搜索+也不起作用).

无论如何,我使用了SQLDeveloper的"解释计划",我得到了一个输出说HASH JOIN, RIGHT OUTER,等等.

如果我(+)在查询结束时删除运算符会有什么不同吗?数据库是否必须满足某些条件((+)如有一些索引等)才可以使用?如果你能给我一个简单的理解,或者我能读到的一些好的链接,那将会非常有帮助.

谢谢!

sql oracle join outer-join

145
推荐指数
4
解决办法
21万
查看次数