pandas 怎麼根據一列的資料的值的情況判斷來生成另外一列的數值

時間 2021-05-31 18:50:18

1樓:星空流

其他回答已經很全面了。

我再介紹兩種方法。

以下面的資料為例。

使用np.where() 方法,這個方法用起來與if類似,但是是基於numpy的,numpy的特性是一起計算,而if是乙個乙個計算,所以np.where()速度非常快。

apl['漲跌'] = np.where(apl[3]>0,'漲',np.where(apl[3]==0,'平','跌'))

2. 使用np.select()方法

conditions=[

apl[3]

>0,apl[3]

==0,apl[3

]<0]

choices=[

'漲',

'跌',

'平']np.

select

(condlist

=conditions

,choicelist

=choices

,default

='_'

)這兩種方法,都是numpy的方法,特點是運算速度很快,特別適用於資料量大的資料處理,比如幾百萬行的資料處理,優勢很明顯。

2樓:SHAWN

map函式df[

'漲跌']=

df['p_change'].

map(

lambdax:

(x<0and

'跌')or(

x==0and

'平')or(

x>0and

'漲'))

2. 笨方法,粗暴直接,複雜度方法1*3

df.loc[df['p_change']==0, '漲跌'] = '平'

df.loc[df['p_change']>0, '漲跌'] = '漲'

df.loc[df['p_change']<0, '漲跌'] = '跌'

3樓:

這種簡單的可以用df.where,後面有多少個條件接.where就行

df['new'] = df['new'].where(df['p_change'] >0 ,1)

4樓:Whoum Whour

# map with dict

flag=df

['flag']=

sign(df

['p_change']).

map(

flag

)# Ye Lu Zi

flag=[

'跌',

'平',

'漲']df[

'flag']=

[flag

[int(i

)]foriin

1+sign(df

['p_change'])]

5樓:文兄

送給懶得自己寫函式的人

import numpy as np

df['漲跌'] = np.sign(df['p_change'])df['漲跌'].replace([-1,0,1], ['跌','平','漲'], inplace = True)

pandas如何新增一列,對相同的行賦同乙個值?

peter 利益相關,我是pandas 貢獻者。import pandas aspd import numpy asnp from functools import lru cache from itertools import permutationsdf pd.DataFrame data pe...

Excel函式如何根據某列內容將另一列相關聯的多行資料轉成一行多列形式(VBA做也行,含問題檔案鏈)?

Option Explicit Subtest Dim dict AsObject Setdict CreateObject Scripting.dictionary Dim RowCount,i j,Arr FamilyNo Brr,ub ubm RowCount Sheets 源資料 UsedR...

excel中如何根據一列關鍵字自動補充其他列

沐雨 先把這些對應關係放到一張小表裡,然後在正式表裡用VLOOKUP函式,把對應關係引用過來即可。假定第一列為學號,第二列為姓名,根據第一列輸入的內容自動填充第二列的方法 首先在另一工作表sheet2中先建立學號與姓名對照表,資料分別在A列和B列。然後在本工作表第二列設定好公式,當在第一列輸入內容且...