我想用 Python 从文本中提取 IBAN 号码。这里的挑战是,IBAN 本身可以以多种方式编写,数字之间有空格,我发现很难将其转换为有用的正则表达式模式。
我写了一个演示版本,它试图从文本中匹配所有德国和奥地利的 IBAN 号码。
^DE([0-9a-zA-Z]\s?){20}$
Run Code Online (Sandbox Code Playgroud)
我在stackoverflow上看到过类似的问题。但是,编写 IBAN 数字的不同方法以及从文本中提取这些数字的组合使我的问题很难解决。
希望你能帮我解决这个问题!
我有多个(超过100个)数据帧。我怎样才能把它们都吸引住?
问题是,我有太多数据框,无法将它们手动写入列表中,如下所示:
>>> cluster_1 = pd.DataFrame([['a', 1], ['b', 2]],
... columns=['letter ', 'number'])
>>> cluster_1
letter number
0 a 1
1 b 2
>>> cluster_2 = pd.DataFrame([['c', 3], ['d', 4]],
... columns=['letter', 'number'])
>>> cluster_2
letter number
0 c 3
1 d 4
>>> pd.concat([cluster_1, cluster_2])
letter number
0 a 1
1 b 2
0 c 3
1 d 4
Run Code Online (Sandbox Code Playgroud)
我的N个数据帧的名称是cluster_1,cluster_2,cluster_3,...,cluster_N。N可以很高。
如何合并N个数据帧?
我有一个德语文本,我想对其应用词形还原。如果词形还原是不可能的,那么我也可以接受词干。
数据:这是我的德语文本:
mails=['Hallo. Ich spielte am frühen Morgen und ging dann zu einem Freund. Auf Wiedersehen', 'Guten Tag Ich mochte Bälle und will etwas kaufen. Tschüss']
Run Code Online (Sandbox Code Playgroud)
目标:应用词形还原后,它应该类似于:
mails_lemma=['Hallo. Ich spielen am früh Morgen und gehen dann zu einer Freund. Auf Wiedersehen', 'Guten Tag Ich mögen Ball und wollen etwas kaufen Tschüss']
Run Code Online (Sandbox Code Playgroud)
我尝试使用 spacy
conda install -c conda-forge spacy
python -m spacy 下载 de_core_news_md
import spacy
from spacy.lemmatizer import Lemmatizer
lemmatizer = Lemmatizer()
[lemmatizer.lookup(word) for word in mails]
Run Code Online (Sandbox Code Playgroud)
我看到以下问题。 …
我有一个与其他人的数据框。每行都包含表征个人的属性。基本上,我需要权重特定属性的过滤器或匹配算法之类的东西。数据框如下所示:
df= pd.DataFrame({
'sex' : [m,f,m,f,m,f],
'food' : [0,0,1,3,4,3],
'age': [young, young, young, old, young, young]
'kitchen': [0,1,2,0,1,2],
})
Run Code Online (Sandbox Code Playgroud)
数据框df如下所示:
sex food age kitchen
0 m 0 young 0
1 f 0 young 1
2 m 1 young 2
3 f 3 old 0
4 m 4 young 1
5 f 3 young 2
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种算法,将数据帧中的所有人员分组。我的计划是根据以下属性找到两个人对:
一个人必须有厨房(厨房= 1)
。重要的是至少一个人要有厨房。
kitchen = 0->人没有厨房
kitchen = 1->人有厨房
kitchen = 2->人有厨房,但只有在紧急情况下(当没有其他选择时)
相同的食物偏好
食物= 0->肉食者
食物= 1->没关系
食物= 2->素食主义者
食物= 3->素食
食肉者(food = …
查找指定德国门牌号码的正则表达式:
\n\n有效门牌号:
\n\n无效门牌号:
\n\n最后一个示例排除了所有非拉丁字符
\n\n我的正则表达式与应有的方式不匹配:
\n\n\\d+(\\s|-)?\\w*$\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:抱歉,我不得不更改上面的示例!请看一看!
\n我有一个正则表达式,可以从网站中提取德国手机号码:
[^\d]((\+49|0049|0)1[567]\d{1,2}([ \-/]*\d){7})(?!\d)
Run Code Online (Sandbox Code Playgroud)
正如您在演示中看到的,它运行得很好。唯一尚未匹配的模式是:
+49 915175461907
Run Code Online (Sandbox Code Playgroud)
请参阅链接演示中的更多示例。问题是后面的空格+49。
我需要如何更改当前的正则表达式模式才能匹配这些类型的模式?