python 實現(xiàn)添加標(biāo)簽&打標(biāo)簽的操作
發(fā)布日期:2022-05-02 14:38 | 文章來源:源碼中國
普通打標(biāo)簽
odue_df=df_train_stmt.loc[(df_train_stmt.AGE3>0)|(df_train_stmt.AGE4>0)|(df_train_stmt.AGE5>0)|(df_train_stmt.AGE6>0),['XACCOUNT']].drop_duplicates()
odue_df['label']=1
cust_df=df_acct[['CUSTR_NBR','XACCOUNT']].drop_duplicates()
#做合并
df_y=pd.merge(cust_df,odue_df,how='left',on='XACCOUNT').groupby('CUSTR_NBR').agg({'label':max}).reset_index().fillna(0)
使用函數(shù)來打標(biāo)簽
#標(biāo)注標(biāo)簽 Label
def label(row):
if row['Date_received'] == 'null':
return -1
if row['Date'] != 'null':
td = pd.to_datetime(row['Date'], format='%Y%m%d') - pd.to_datetime(row['Date_received'], format='%Y%m%d')
if td <= pd.Timedelta(15, 'D'):
return 1
return 0
dfoff['label'] = dfoff.apply(label, axis=1)
#打標(biāo)簽,判斷天數(shù)
def get_label(s):
s = s.split(':')
if s[0]=='null':
return 0
elif (date(int(s[0][0:4]),int(s[0][4:6]),int(s[0][6:8]))-date(int(s[1][0:4]),int(s[1][4:6]),int(s[1][6:8]))).days<=15:
return 1
else:
return -1
dataset2.label = dataset2.label.apply(get_label)
補(bǔ)充:python 根據(jù)標(biāo)簽名獲取標(biāo)簽內(nèi)容
看代碼吧~
import re
import json
import requests
from bs4 import BeautifulSoup
import lxml.html
from lxml import etree
result = requests.get('http://example.webscraping.com/places/default/view/Algeria-4')
with open('123.html', 'wb') as f:
f.write(result.content)
# print(parse_regex(result.text))
test_data = """
<div>
<ul>
<li class="item-0"><a href="link1.html" rel="external nofollow" rel="external nofollow" id="places_neighbours__row">9,596,960first item</a></li>
<li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li>
<li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li>
<li class="item-1"><a href="link4.html" rel="external nofollow" id="places_neighbours__row">fourth item</a></li>
<li class="item-0"><a href="link5.html" rel="external nofollow" rel="external nofollow" >fifth item</a></li>
<li class="good-0"><a href="link5.html" rel="external nofollow" rel="external nofollow" >fifth item</a></li>
</ul>
<book>
<title lang="aaengbb">Harry Potter</title>
<price id="places_neighbours__row">29.99</price>
</book>
<book>
<title lang="zh">Learning XML</title>
<price>39.95</price>
</book>
<book>
<title>Python</title>
<price>40</price>
</book>
</div>
"""
# //div/ul/li/a[@id] 選取a標(biāo)簽中帶有id屬性的標(biāo)簽
# //div/ul/li/a 選取所有a標(biāo)簽
# //div/ul/li[2]/a
"""
/ 從根標(biāo)簽開始 必須具有嚴(yán)格的父子關(guān)系
// 從當(dāng)前標(biāo)簽 后續(xù)節(jié)點含有即可選出
* 通配符 選擇所有
//div/book[1]/title 選擇div下第一個book標(biāo)簽的title標(biāo)簽
//div/book[1]/tittle[@lang="zh"] 選擇div下第一個book標(biāo)簽的title標(biāo)簽并且內(nèi)容是zh的title標(biāo)簽
//div/book/title //book/title //title 具有相同結(jié)果 只不過選取路徑不一樣
//book/title/@* 將title所有的屬性值選出來
//book/title/text() 將title的內(nèi)容選擇出來,使用內(nèi)置函數(shù)
//a[@href="link1.html" rel="external nofollow" rel="external nofollow" and @id="places_neighbours_row"]
//div/book/[last()]/title/text() 將最后一個book元素選出
//div/book[price > 39]/title/text() 將book子標(biāo)簽price數(shù)值大于39的選擇出來
//li[starts-with(@class,'item')] 將class屬性前綴是item的選出來
//title[contains(@lang,"eng")]將title屬性lang含有eng關(guān)鍵字的標(biāo)簽選出
"""
html = lxml.html.fromstring(test_data) # 加載任意一個字符串
html_data = html.xpath('//title[contains(@lang,"eng")]') # xpath 查找路徑
# print(dir(html_data[0])) # 查看html_data有什么功能
print(html_data)
for i in html_data:
print(i.text)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信