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

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

在具有多個參數(shù)和多個輸出的熊貓中應(yīng)用函數(shù)

在具有多個參數(shù)和多個輸出的熊貓中應(yīng)用函數(shù)

RISEBY 2022-12-27 17:12:40
我有一個函數(shù)foo(),它將兩個參數(shù)作為 pandas 的兩列,分別命名為年和月,并返回一個包含四個數(shù)字的列表。  df['A'],df['B'],df['C'],df['D']=  df.apply(lambda x: foo(x.year, x.month), axis=1,result_type="expand")它只是給了我四個名為 A、B、C、D 的列,分別填充了 0、1、2、3。我究竟做錯了什么?請不要回答單變量輸出或單變量參數(shù)。那里有很多例子。十分感謝你的幫助。
查看完整描述

1 回答

?
MMMHUHU

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

您錯誤地分配了df.apply帶有可選參數(shù)的結(jié)果result_type='expand',而是使用:


df[['A', 'B', 'C', 'D']] =  df.apply(lambda x: foo(x.year, x.month), axis=1, result_type="expand")

考慮證明這一點的例子,


df = pd.DataFrame({'col1': np.arange(5), 'col2': np.arange(5) * 2})


#print(df)

   col1  col2

0     0     0

1     1     2

2     2     4

3     3     6

4     4     8

重現(xiàn)問題情況,


df['A'], df['B'] = df.apply(lambda s: (s['col1']**2, s['col2']**2), axis=1, result_type='expand')


#print(df)

   col1  col2  A  B

0     0     0  0  1

1     1     2  0  1

2     2     4  0  1

3     3     6  0  1

4     4     8  0  1

解決方案是,


df[['A', 'B']] = df.apply(lambda s: (s['col1']**2, s['col2']**2), axis=1, result_type='expand')


#print(df)

   col1  col2   A   B

0     0     0   0   0

1     1     2   1   4

2     2     4   4  16

3     3     6   9  36

4     4     8  16  64

要么:


df['A'], df['B'] = df.apply(

lambda s: (s['col1']**2, s['col2']**2), axis=1, result_type='expand').T.to_numpy()


#print(df)

   col1  col2   A   B

0     0     0   0   0

1     1     2   1   4

2     2     4   4  16

3     3     6   9  36

4     4     8  16  64


查看完整回答
反對 回復(fù) 2022-12-27
  • 1 回答
  • 0 關(guān)注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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