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

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

Pandas 將行合并和轉(zhuǎn)換為列和特征工程

Pandas 將行合并和轉(zhuǎn)換為列和特征工程

楊__羊羊 2022-05-24 17:08:34
我有兩張這樣的桌子,表 AID_1   Value_1   Value_21      ABC       N_12      DEF       N_23      GHI       N_3表 BB_ID_1 B_Value_1     Value_21      abcd            N_11      abc             N_23      GHI_1           N_33      GHI_2           N_33      GHI_3           N_33      GHI_4           N_3特定數(shù)字的記錄數(shù)恰好是 ID。在這種情況下,它是 4。但它每次都在變化。我想做一個左合并(從表 A 到表 B),然后將它轉(zhuǎn)換成這樣的東西。ID_1   Value_1   Value_2     B_Value_1_1    B_Value_2_1  B_Value_1_2      B_Value_2_2     B_Value_1_3     B_Value_2_3    B_Value_1_4    B_Value_2_4        1      ABC       N_1         abcd             N_1           abc          N_22      DEF       N_23      GHI       N_3         GHI_1            N_3          GHI_2         N_3                  GHI_3            N_3             GHI_4            N_3并添加兩個額外的列。count_match 基本上是檢查 Value_1 到 B_Value_1_1 到 B_value_1_4 的匹配次數(shù)numberofvalue 基本上是檢查從 B_Value_1_1 到 B_value_1_4 存在的匹配數(shù)。在這種情況下,額外的列(count_match 和 numberofvalues)看起來像ID_1  count_match numberofvalues1      1               2   2      0               0 3      0               4 我怎樣才能做到這一點。
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

這是實現(xiàn)問題第一部分預期結果的一種方法,第二部分在以預期格式獲取數(shù)據(jù)后應該是直截了當?shù)摹?/p>


1. 預處理


預處理表 B,使其每個 ID 都有一行。您可以執(zhí)行groupbyB_ID_1 并傳遞一個函數(shù)來展平組:


def flatten_group(x):

    n = len(x)

    vals = x.iloc[:,1:].values.flatten().reshape(1, -1)

    names = np.char.add(

        np.array(['B_Value_1_', 'B_Value_2_']*n),

        np.repeat(np.arange(1, n+1).astype(str), 2)

    )

    return pd.DataFrame(data=vals, columns=names)

b_prep = b.groupby('B_ID_1').apply(flatten_group).reset_index(level=0)

2.左連接


在這里你只需做一個左連接


pd.merge(a,b_prep,how='left', left_on='ID_1', right_on='B_ID_1').drop('B_ID_1', axis=1)

細節(jié)


b_prep


   B_ID_1 B_Value_1_1 B_Value_2_1 B_Value_1_2 B_Value_2_2 B_Value_1_3  \

0       1        abcd         N_1         abc         N_2         NaN   

0       3       GHI_1         N_3       GHI_2         N_3       GHI_3   


  B_Value_2_3 B_Value_1_4 B_Value_2_4  

0         NaN         NaN         NaN  

0         N_3       GHI_4         N_3

pd.merge


   ID_1 Value_1 Value_2 B_Value_1_1 B_Value_2_1 B_Value_1_2 B_Value_2_2  \

0     1     ABC     N_1        abcd         N_1         abc         N_2   

1     2     DEF     N_2         NaN         NaN         NaN         NaN   

2     3     GHI     N_3       GHI_1         N_3       GHI_2         N_3   


  B_Value_1_3 B_Value_2_3 B_Value_1_4 B_Value_2_4  

0         NaN         NaN         NaN         NaN  

1         NaN         NaN         NaN         NaN  

2       GHI_3         N_3       GHI_4         N_3


查看完整回答
反對 回復 2022-05-24
  • 1 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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