我已从Wikipedia抓取数据并创建了一个数据框。 df[0]
包含
{{Infobox_President |name = Mohammed Anwar Al Sadat < br / > محمد أنورالسادات |nationality = Al Menofeia, Mesir |image = Anwar Sadat cropped.jpg |order = Presiden Mesir ke-3 |term_start = 20 Oktober 1970 |term_end = 6 Oktober 1981 |predecessor = Gamal Abdel Nasser |successor = Hosni Mubarak |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir |death_place = Kairo, Mesir |death_date =|spouse = Jehan Sadat |party = Persatuan Arab Sosialis < br / > (hingga 1977) < br / > Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik < br / > (dari 1977) |vicepresident =|constituency =}} Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.
我要删除:
{{Infobox_President |name = Mohammed Anwar Al Sadat < br / > محمد أنورالسادات |nationality = Al Menofeia, Mesir |image = Anwar Sadat cropped.jpg |order = Presiden Mesir ke-3 |term_start = 20 Oktober 1970 |term_end = 6 Oktober 1981 |predecessor = Gamal Abdel Nasser |successor = Hosni Mubarak |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir |death_place = Kairo, Mesir |death_date =|spouse = Jehan Sadat |party = Persatuan Arab Sosialis < br / > (hingga 1977) < br / > Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik < br / > (dari 1977) |vicepresident =|constituency =}}
我该怎么做?我已经尝试过
df['Body'] = df['Body'].replace('< ref >.< \/ref > | {{.}} | {{.*=}}','', regex = True)
df['Body'] = df['Body'].str.replace('\'\'\' | \n | [ | ] | \'\'','',regex=True)
但它不起作用
这将解决问题
import re
re.sub('^{{.*}}','', text)
您可以apply
将此函数添加到数据框的列,它将转换该列。
您非常亲密,之所以不起作用,是因为正则表达式模式中有额外的间距,| {{.*=}}
考虑了卷曲空间后面的空间。根据其他答案的建议,您可以使用锚定在行首的特殊运算符^
。
否则将应用匹配该确切模式的正则表达式替换,然后删除模式中的空格:
text = '{{Infobox_President |name = Mohammed Anwar Al Sadat < br / > محمد أنورالسادات |nationality = Al Menofeia, Mesir |image = Anwar Sadat cropped.jpg |order = Presiden Mesir ke-3 |term_start = 20 Oktober 1970 |term_end = 6 Oktober 1981 |predecessor = Gamal Abdel Nasser |successor = Hosni Mubarak |birth_date =|birth_place = Mit Abu Al-Kum, Al-Minufiyah, Mesir |death_place = Kairo, Mesir |death_date =|spouse = Jehan Sadat |party = Persatuan Arab Sosialis < br / > (hingga 1977) < br / > Partai Nasional Demokratik (Mesir)|Partai Nasional Demokratik < br / > (dari 1977) |vicepresident =|constituency =}} Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.'
df = pd.DataFrame({'text':[text]})
new_df = df.replace('< ref >.< \/ref >|{{.*}}','', regex = True)
new_df.text[0]
Output:
' Jenderal Besar Mohammed Anwar Al Sadat () adalah seorang tentara dan politikus Mesir. Ia menjabat sebagai Presiden Mesir|Presiden ketiga Mesir pada periode 15 Oktober 1970 hingga terbunuhnya pada 6 Oktober 1981. Oleh dunia Barat ia dianggap sebagai orang yang sangat berpengaruh di Mesir dan di Timur Tengah dalam sejarah modern.'