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

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

如何將 DataFrame 列的非空條目合并到新列中?

如何將 DataFrame 列的非空條目合并到新列中?

明月笑刀無情 2021-12-29 19:24:10
我正在嘗試創(chuàng)建一個(gè)新列,其中包含過去非空列的所有條目的列表。我希望能夠生成所需的列,而不必遍歷每一行。  col1   col2   col3   output         a      NaN    b      [a,b]          c      d      e      [c,d,e]        f      g      NaN    [f,g]        任何幫助將不勝感激。
查看完整描述

3 回答

?
慕田峪4524236

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

使用DataFrame.agg調(diào)用dropna和tolist:


df.agg(lambda x: x.dropna().tolist(), axis=1)


0       [a, b]

1    [c, d, e]

2       [f, g]

dtype: object

如果您需要逗號分隔的字符串,請使用str.cat或str.join:


df.agg(lambda x: x.dropna().str.cat(sep=','), axis=1)

# df.agg(lambda x: ','.join(x.dropna()), axis=1)


0      a,b

1    c,d,e

2      f,g

dtype: object

如果性能很重要,我建議使用列表理解:


df['output'] = [x[pd.notna(x)].tolist() for x in df.values]

df


  col1 col2 col3     output

0    a  NaN    b     [a, b]

1    c    d    e  [c, d, e]

2    f    g  NaN     [f, g]

這是有效的,因?yàn)槟?DataFrame 由字符串組成。


查看完整回答
反對 回復(fù) 2021-12-29
?
暮色呼如

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

使用 for 循環(huán)


df['New']=[[y for y in x if y == y ] for x in df.values.tolist()]

df

Out[654]: 

  col1 col2 col3        New

0    a  NaN    b     [a, b]

1    c    d    e  [c, d, e]

2    f    g  NaN     [f, g]

或stack與groupby


df['New']=df.stack().groupby(level=0).agg(list)

df

Out[659]: 

  col1 col2 col3        New

0    a  NaN    b     [a, b]

1    c    d    e  [c, d, e]

2    f    g  NaN     [f, g]


查看完整回答
反對 回復(fù) 2021-12-29
?
肥皂起泡泡

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

試試這個(gè):

df['output'] = df.apply(lambda x: x.dropna().to_list(), axis=1)


查看完整回答
反對 回復(fù) 2021-12-29
  • 3 回答
  • 0 關(guān)注
  • 259 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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