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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pandas,如果行包含通配符文本,則合并重復(fù)項

pandas,如果行包含通配符文本,則合并重復(fù)項

PHP
守候你守候我 2023-11-09 21:14:31
我有一個重復(fù)項的數(shù)據(jù)集 (?ID)。數(shù)據(jù)集包含信息和電子郵件。我正在嘗試連接電子郵件(如果行有字符@),然后刪除重復(fù)項。如何附加僅包含電子郵件地址的行?@我認(rèn)為我可以通過使用通配符并替換這部分來 跳過附加包含字符的所有行if row['Store1_Email']: # <- not working對于任何這些嘗試,但沒有任何效果:1.if str('**@**') in row['Store1_Email']: # <- not working錯誤:Traceback (most recent call last):? File "g:/Till/till_duplicate.py", line 35, in <module>? ? if str('**@**') in row['Store1_Email']:TypeError: argument of type 'float' is not iterablePS G:\Till>錯誤:Traceback (most recent call last):? File "g:/Till/till_duplicate.py", line 35, in <module>? ? if df_merged_duplicates[df_merged_duplicates.loc[i, 'Store1_Email'].str.contains('@')]:AttributeError: 'str' object has no attribute 'str'PS G:\Till>
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗 獲得超5個贊

我會使用“拆分-應(yīng)用-組合”的方法。在 pandas 中,您可以使用該groupby函數(shù)來執(zhí)行此操作,然后應(yīng)用一個函數(shù)將電子郵件地址組合到每個組中(在這種情況下,您可以按 col 進(jìn)行分組)ID。


我編寫了一個函數(shù)來組合給定列的電子郵件地址:


def combine_emails(series):

    strs = [s for s in series.astype(str).values if '@' in s]

    combined_emails = ",".join(strs)

    if combined_emails !='':

        return combined_emails

    else:

        return np.nan

然后,我編寫了一個函數(shù)來獲取每個分組數(shù)據(jù)幀的第一行,并調(diào)用電子郵件列上的組合函數(shù)來填充行電子郵件值:


def combine_duplicate_rows(df):

    first_row = df.iloc[0]

    for email_col in ['Store1_Email', 'Store2_Email', 'Store3_Email', 'Store4_Email']:

        first_row[email_col] = combine_emails(df[email_col])

    return first_row

然后您可以將其應(yīng)用combine_duplicate_rows到您的組中并獲得解決方案:


In [71]: df.groupby('ID').apply(combine_duplicate_rows)

Out[71]:

    ID Header 1  Header 2  Header 3  Header 4  Header 5                           Store1_Email  Header 9  Store2_Email  Header 12  Store3_Email  Header 17         Store4_Email

ID

1    1       AA       NaN       NaN       NaN       NaN                     Email@company1.com       NaN           NaN        NaN           NaN        NaN  Email2@company2.com

2    2       BB       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

3    3       CC       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

4    4       DD       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

5    5       EE       NaN       NaN       NaN       NaN  Email@company2.com,Email@company2.com       NaN           NaN        NaN           NaN        NaN                  NaN

6    6       FF       NaN       NaN       NaN       NaN  Email@company3.com,Email@company3.com       NaN           NaN        NaN           NaN        NaN                  NaN

7    7       GG       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

8    8       HH       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

9    9       II       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN  Email2@company3.com

10  10       JJ       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

11  11       KK       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN  Email2@company4.com

12  12       LL       NaN       NaN       NaN       NaN  Email@company4.com,Email@company4.com       NaN           NaN        NaN           NaN        NaN                  NaN

13  13       MM       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

14  14       NN       NaN       NaN       NaN       NaN                                    NaN       NaN           NaN        NaN           NaN        NaN                  NaN

然后你就會有一個重復(fù)的ID列,但你可以刪除它


del df['ID']


查看完整回答
反對 回復(fù) 2023-11-09
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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