我正在嘗試從帖子中獲取社交媒體用戶名。到目前為止,這是我的代碼。
social_media=['kik']
df['socials'] = df['Request'].str.extract('({})'.format('|'.join(social_media)),
flags=re.IGNORECASE, expand=False).str.lower().fillna('')
print(df['socials'])
kik此代碼為kik列出的行列印
我怎樣才能讓它輸出后面列出的用戶名kik
這是我的資料框的示例:
Request
-------
0 my kik abcd
1 ig bby
2 check out my kik:1234
3 Kik hehehaha
我的代碼輸出這個:
socials
-------
0 kik
1
2 kik
3 kik
我希望它輸出這個:
socials
-------
0 abcd
1
2 1234
3 hehehaha
uj5u.com熱心網友回復:
創建樣本資料
import pandas as pd
import re
df = pd.DataFrame()
df['request'] = ['my kik abcd', 'ig bby', 'check out my kik:1234', 'Kik hehehaha']
過濾資料,僅查找包含“kik”的資料,不區分大小寫
filtered_df = df[df['request'].str.contains('kik', flags=re.IGNORECASE)]
查看具有 'kik' 的行并獲取其后的所有內容:
df.loc[filtered_df.index, 'test'] = [re.split('kik', row, flags=re.IGNORECASE, maxsplit=1)[-1] for row in filtered_df['request']]
需要注意的幾點
- 第二行值仍然包含分號,您可以簡單地執行 a
str.replace來擺脫它 - 我將拆分限制為最多一次(
maxsplit=1),因此它總是會在 kik 之后占用所有內容[-1]。
意味著一串'kik junk junk junk'將導致'junk junk junk'
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/437254.html
