亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在其他兩列熊貓的條件下創建一個新列

在其他兩列熊貓的條件下創建一個新列

呼喚遠方 2021-12-21 15:58:34
我有一個包含兩列的數據框。我想創建一個新列并輸入具有最長字符串的列。所以        column_a        column_b             column_c   0  'dog is fast'   'dog is faster'      'dog is faster' (desired output)我試過這段代碼,但得到一個錯誤,說 int 不可迭代,我正在考慮將系列合并到 df。我不確定如何立即將它實施到 df 的列中。column_c = pd.Series() for i in len(df.column_a):  if len(df.column_a.iloc[i]) >= len(df.column_b.iloc[0]):    column_c.append(df.column_a.iloc[i])  else:    column_c.append(df.column_b.iloc[i])任何幫助都值得贊賞。
查看完整描述

3 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

使用pandas.DataFrame.apply:


給定樣本數據


import pandas as pd


df = pd.DataFrame([['fast', 'faster'], ['slower', 'slow']])

        0       1

0    fast  faster

1  slower    slow


df['column_c'] = df.apply(lambda x:max(x, key=len), 1)

輸出:


        0       1 column_c

0    fast  faster   faster

1  slower    slow   slower


查看完整回答
反對 回復 2021-12-21
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

可以使用 df.apply()

df['column_c'] = df.apply(lambda x: x[0] if len(x[0]) > len(x[1]) else x[1], axis=1)


查看完整回答
反對 回復 2021-12-21
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

使用np.where與str.len


df['column_c']=np.where(df.column_a.str.len()>df.column_b.str.len(),df.column_a,df.column_b)

df

Out[301]: 

        column_a         column_b         column_c

0  'dog is fast'  'dog is faster'  'dog is faster'


查看完整回答
反對 回復 2021-12-21
  • 3 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號