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

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

連接兩列.

連接兩列.

慕妹3146593 2023-09-12 16:50:41
我有兩個文本列 A 和 B。我想采用第一個非空字符串,或者如果 A 和 B 都有值,則采用 A 中的值。C 是我試圖創(chuàng)建的列:import pandas as pdcols = ['A','B']data = [['data','data'],        ['','data'],        ['',''],        ['data1','data2']]df = pd.DataFrame.from_records(data=data, columns=cols)      A      B0  data   data1         data2             3  data1  data2我的嘗試:df['C'] = df[cols].apply(lambda row: sorted([val if val else '' for val in row], reverse=True)[0], axis=1) #Reverse sort to avoid picking an empty string      A      B      C0  data   data      data1         data      data2             3  data1  data2     data2 #I want data1 here預(yù)期輸出:      A      B      C0  data   data      data1         data      data2             3  data1  data2     data1我想我想要 pandas 相當(dāng)于 SQL 合并。
查看完整描述

2 回答

?
飲歌長嘯

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

您還可以使用numpy.where

In [1022]: import numpy as np

In [1023]: df['C'] = np.where(df['A'].eq(''), df['B'], df['A'])


In [1024]: df

Out[1024]:?

? ? ? ?A? ? ? B? ? ? C

0? ?data? ?data? ?data

1? ? ? ? ? data? ?data

2? ? ? ? ? ? ? ? ? ? ?

3? data1? data2? data1


查看完整回答
反對 回復(fù) 2023-09-12
?
躍然一笑

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

讓我們嘗試一下idxmax+ lookup:


df['C'] = df.lookup(df.index, df.ne('').idxmax(1))

或者您可以使用Series.where:


df['C'] = df['A'].where(lambda x: x.ne(''), df['B'])

       A      B      C

0   data   data   data

1          data   data

2                     

3  data1  data2  data1


查看完整回答
反對 回復(fù) 2023-09-12
  • 2 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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