第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在數(shù)據(jù)框列中搜索字符串模式,返回每次出現(xiàn)并加入另一個(gè)數(shù)據(jù)框

在數(shù)據(jù)框列中搜索字符串模式,返回每次出現(xiàn)并加入另一個(gè)數(shù)據(jù)框

眼眸繁星 2023-01-04 11:18:22
我正在嘗試做一些類似于如何循環(huán)遍歷 pandas df 列我的初始數(shù)據(jù)框logs包含以下內(nèi)容:ID DB  USER  MDX_TEXT1  DB1  JOE  SELECT [ATTR1].[ATTR1].[THE_ATTR1] ON COLUMNS,[ATTR2].[ATTR2].[THE_ATTR2] ON ROWS FROM [THE_DB] WHERE [ATTR3].[ATTR3].[THE_ATTR3]2  DB1  JAY  SELECT [ATTR1].[ATTR1].[THE_ATTR1] ON COLUMNS, [ATTR3].[ATTR3].[THE_ATTR3] ON ROWS FROM [THE_DB] WHERE [ATTR3].[ATTR3].[THE_ATTR3]MDX_TEXT使用正則表達(dá)式,然后我提取每個(gè)的唯一實(shí)例ID# Step 1: Define a pattern to extract MDX regex patternimport repattern = re.compile (r'(\[[\w ]+\]\.\[[\w ]+\](?:\.(?:Members|\[Q\d\]))?)')# Step 2: Create a dataframe to store distinct list of MDX Query attributes, based on patternextrpat =  (            logs['MDX_TEXT'].str.extractall(pattern)                            .drop_duplicates()                            .to_numpy()           )# Step 3: Create a dataframe to store distinct list of attributes used in a queryattr= pd.DataFrame(data=extrpat)attr.rename({0: 'attrname'}, inplace=True, axis=1)# Preview the first 5 lines of the attributes dataframeattr.head()結(jié)果是:attrname[THE_ATTR1][THE_ATTR2][THE_ATTR3][THE_ATTR1][THE_ATTR3]我想要的是,除了在步驟 2 中提取唯一屬性之外,還提取IDand USER,如下所示:ID  USER  attrname1  JOE  [THE_ATTR1]1  JOE  [THE_ATTR2]1  JOE  [THE_ATTR3]2  JAY  [THE_ATTR1]2  JAY  [THE_ATTR3]最后,加入attr和logs上的數(shù)據(jù)框ID。這個(gè)想法是引入第三個(gè)數(shù)據(jù)框users:USER  LOCJOE  NYJIL  NJMAC  CA......我將加入上述內(nèi)容USER以結(jié)束:ID  USER  LOC  attrname1  JOE  NY  [THE_ATTR1]1  JOE  NY  [THE_ATTR2]1  JOE  NY  [THE_ATTR3]2  JAY  NJ  [THE_ATTR1]2  JAY  NJ  [THE_ATTR3]
查看完整描述

1 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

模式片是一個(gè)好的開始,但是你必須將它與原始數(shù)據(jù)框合并/加入:


df.index.name = "inx"

pattern = re.compile (r'(\[[\w ]+\]\.\[[\w ]+\])')


# extract the attributes. 

extracts = df.MDX_TEXT.str.extractall(pattern).rename(columns={0:"attrname"})


# join the result with the original dataframe. 

res = df.join(extracts).reset_index()[["ID", "USER", "attrname"]].drop_duplicates()


# take just the last part of each attribute name. 

res["attrname"] = res["attrname"].str.split(".", expand = True).iloc[:, -1]

結(jié)果是:


   ID USER attrname

0   1  JOE  [ATTR1]

1   1  JOE  [ATTR2]

2   1  JOE  [ATTR3]

3   2  JAY  [ATTR1]

4   2  JAY  [ATTR3]


查看完整回答
反對(duì) 回復(fù) 2023-01-04
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)