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

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

使用適當(dāng)?shù)?NaN 處理將熊貓數(shù)據(jù)框列從數(shù)字轉(zhuǎn)換為字符串

使用適當(dāng)?shù)?NaN 處理將熊貓數(shù)據(jù)框列從數(shù)字轉(zhuǎn)換為字符串

猛跑小豬 2022-07-05 15:35:21
下面是我的代碼:import pandas as pdimport numpy as npdf = pd.DataFrame({ 'object': ['a', 'b', 'c',np.nan],                   'numeric': [1, 2, np.nan , 4],                 })df['both'] = df['object'] + '__' + df['numeric'].astype(str)運(yùn)行后是df這樣的:object   numeric   botha          1             a__1.0b          2             b__2.0c          nan          c__nannan      4              nan在上面的列中,both我需要而不是NaN添加任何內(nèi)容,并且列中添加的數(shù)字both應(yīng)該看起來與numeric列中的一樣(不添加.0等)。所以,我想得到:object   numeric   botha          1             a__1b          2             b__2c          nan          c__nan      4              4__
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個贊

只需運(yùn)行 if 語句來檢查您是否有空值。


你可以使用fillna,但你會在兩邊都有不匹配的'__'。


conditions = [(df['numeric'].isnull()),

             (df['object'].isnull())]


outputs = [df["object"].astype(str) + "__", df["numeric"].astype(str) + "__"]


df['both']  = np.select(conditions,outputs,default= 

             df['object'] + '__' + df['numeric'].astype(str))


print(df)

  object  numeric    both

0      a      1.0  a__1.0

1      b      2.0  b__2.0

2      c      NaN     c__

3    NaN      4.0   4.0__

如果您正在使用,pandas 0.24+那么您可以利用Int64處理 nan 值的 dtype :


在這里閱讀更多


df['numeric'] = df['numeric'].astype('Int64')


df['both']  = np.select(conditions,outputs,default=  

            df['object'] + '__' + df['numeric'].astype(str))

print(df)

  object  numeric  both

0      a        1  a__1

1      b        2  b__2

2      c      NaN   c__

3    NaN        4   4__


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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