假设我有这两个数据框,其列数相同,但行数可能不同:
tmp = np.arange(0,12).reshape((4,3))
df = pd.DataFrame(data=tmp)
tmp2 = {'a':[3,100,101], 'b':[4,4,100], 'c':[5,100,3]}
df2 = pd.DataFrame(data=tmp2)
print(df)
0 1 2
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
print(df2)
a b c
0 3 4 5
1 100 4 100
2 101 100 3
Run Code Online (Sandbox Code Playgroud)
我想验证 的行是否df2
与 的任何行匹配 df
,也就是说,我想获得一系列(或数组)布尔值来给出以下结果:
0 True
1 False
2 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
我认为类似的isin
方法应该有效,但我得到了这个结果,这导致了一个数据框并且是错误的:
print(df2.isin(df))
a b c
0 False False False
1 False False …
Run Code Online (Sandbox Code Playgroud) 我正在尝试解决每周都会重复执行的任务。我所做的是将一列(A 列)与另一列(E 列)中的 ID 集进行比较,反之亦然。如果在第二列中找到第一列中的值,则该值将移动到值匹配的位置。如果两列中都没有匹配的数据,则该列将为空白。所有匹配的值都会下移,所有不匹配的值都会上移进行检查。
这是下面的示例数据,可在“示例”选项卡中找到:
A栏 | B栏 |
---|---|
399381935 | 375634552 |
407932943 | 399381935 |
409046041 | 407932943 |
448734453 | 409046041 |
452821913 | 431446526 |
459673358 | 448734453 |
463178020 | 448879624 |
485888087 | 452821913 |
498826033 | 458359366 |
498826520 | 459673358 |
503189964 | 463178020 |
509536058 | 485888087 |
509542349 | 497540933 |
510595029 | 498826033 |
510595505 | 498826520 |
510601532 | 502416642 |
511701201 | 502433066 |
512763252 | 503189964 |
515003633 | 506534952 |
515008102 | 509536058 |
520097636 | 509542349 |
510307762 | |
510312887 | |
510320772 | |
510595029 | |
510601532 | |
511701201 | |
512763252 | |
515003633 |
希望运行脚本后,完成的数据应该具有如下所示的结果,其中所有匹配的数据都分组在下面,这些唯一值被推到上面,这样就更容易检查:
A栏 | B栏 |
---|---|
375634552 | |
431446526 | |
448879624 | |
458359366 | |
497540933 | |
502416642 | |
502433066 | |
506534952 | |
510307762 | |
510312887 | |
510320772 | |
510595505 | |
515008102 | |
520097636 | |
399381935 | 399381935 |
407932943 | 407932943 |
409046041 … |
如何在C或C++中实现二分匹配算法(可能基于最大流算法)?
具体来说,我把这个输入放在一个文件中:(1,3)(1,5)(2,5)
(M,F) - >其中M代表MALE的id,F代表FEMALE的id.
我需要找到最大匹配数并显示匹配的夫妻.喜欢:匹配:1&3,2和5
我已经读过一些书籍,我可以将这个问题基于"网络中的最大流量"算法,但除了句子"这个问题可以通过......算法解决"之外,我找不到任何具体的信息.我对max-flow知之甚少,也不知道如何实现它...
我正在编写sql来通过许多参数搜索数据库.我如何按照与where子句中的大多数参数匹配的项来排序结果集.例如:
SELECT *
FROM users
WHERE username = 'eitan'
OR email = 'eitan@eitan.com'
OR company = 'eitan'
Username | email | company
1) eitan | blah@blah.com | blah
2) eitan | eitan@eitan.com | eitan
3) eitan | eitan@eitan.com | blah
Run Code Online (Sandbox Code Playgroud)
应订购如下:
2,3,1.
谢谢.(ps查询不是那么容易,在WHERE中有很多连接和很多OR)
埃坦
我有在我所喜欢插入自定义标记HTML文件{{name}}
,{{surname}}
.现在,我想寻找谁喜欢的模式完全匹配的标签{{world}}
唯一甚至不是{world}}
,{{world}
,{world}
,{ word }
,{{ world }}
,等我写的小代码为
re.findall(r'\{(\w.+?)\}', html_string)
Run Code Online (Sandbox Code Playgroud)
它返回我不想要的模式{{world}},{world},{world}}之后的单词.我想完全匹配{{world}}.有人可以指导我吗?
x= [0,2,3,5,6];
y= [64,384,1024,4096,384];
Run Code Online (Sandbox Code Playgroud)
以上是我正在使用的两个数组.我试图以pythonic方式将元素匹配在一起
例:
如果xType
是2,我想计算一个被调用的变量,yType
以对应y中的值(位置明智).所以我应该得到y = 384
.如果xType = 3
我应该得到1024.
我该怎么做呢?
我有一个带有企业数据库的python应用程序,我希望能够按名称搜索企业(用于自动完成目的).
例如,考虑名称"最佳购买","麦当劳","索尼"和"苹果".
我希望"app"返回"apple",以及"appel"和"ple"."麦当劳"应该回归"麦当劳"."bst b"和"best-buy"都应该返回"最佳购买".
我在寻找哪种算法,是否有python实现?
谢谢!
我有一个如下的数据集 -
> a_i
[1] "Our-Facebook-Page/td-p/3175990"
[2] "Our-Facebook-Page/td-p/3175990/page/2"
....
[17] "Data-duplicate-files/td-p/4743405"
[18] "Data-duplicate-files/td-p/4743405/page/2"
[19] "Subscription-Release-1-sucks/td-p/4556739"
[20] "Subscription-Release-1-sucks/td-p/4556739/page/2"
> b_i
[1] "Data-duplicate-files/td-p/4743405"
[2] "Subscription-Release-1-sucks/td-p/4556739"
[3] "Quick-fix/td-p/4556740"
Run Code Online (Sandbox Code Playgroud)
我的目标是找到仅存在于b_i中的7位数字(例如4743405,4556739,4556740),并从包含相应数字的a_i中获取数据.所以最终输出将是这样的 -
[1] "Data-duplicate-files/td-p/4743405"
[2] "Data-duplicate-files/td-p/4743405/page/2"
[3] "Subscription-Release-1-sucks/td-p/4556739"
[4] "Subscription-Release-1-sucks/td-p/4556739/page/2""
Run Code Online (Sandbox Code Playgroud)
我能够使用strsplit(b_i,"/")获取数字但我仍然在抓取包含匹配数字的列表.是否有任何优雅的方式来映射这些数字并获取列表?
问题:我们给出了两个数组A和B的整数.现在,在每个步骤中,我们可以从两个数组中删除任何2个非共同素数整数.我们必须找到这些步骤可以删除的最大对数.
界限:
A的长度,B <= 10 5
每个整数<= 10 9
Dinic的算法 - O(V 2 E)
Edmonds-karp算法 - O(VE 2)
Hopcroft-Karp算法 - O(E sqrt(V))
到目前为止我的方法:这可以被建模为具有两个集合A和B的二分匹配问题,并且可以在来自相应集合的每个非共同素数对之间创建边缘.
但问题是图中可能存在O(V 2)边,并且对于如此大的图,大多数二分匹配和最大流算法将是超慢的.
我正在寻找一些特定的问题或数学优化,可以在合理的时间内解决问题.为了通过测试用例,我需要最多O(V log V)或O(V sqrt(V))算法.
提前致谢.
读者朋友,
我有以下正则表达式问题:
码
#!/usr/bin/perl -w
use 5.010;
use warnings;
my $filename = 'input.txt';
open my $FILE, "<", $filename or die $!;
while (my $row = <$FILE>)
{ # take one input line at a time
chomp $row;
if ($row =~ /\b\w*a\b/)
{
print "Matched: |$`<$&>$'|\n"; # the special match vars
print "\$1 contains '$1' \n";
}
else
{
#print "No match: |$row|\n";
}
}
Run Code Online (Sandbox Code Playgroud)
I like wilma.
this line does not match
Run Code Online (Sandbox Code Playgroud)
Matched: |I like <wilma>|
Use of …
Run Code Online (Sandbox Code Playgroud)