我有一個如下所示的資料框:
date symbol numerator denominator
4522 2021-10-06 PAG.SG 1.0 18
1016 2020-11-23 IPA.V 1.0 5
412 2020-04-17 LRK.AX 1.0 30
1884 2021-06-03 BOUVETO.ST 1.0 1
2504 2021-04-28 VKGYO.IS 1.0 100
3523 2021-07-08 603355.SS 1.0 1
3195 2021-08-23 IDAI 1.0 1
3238 2021-08-19 6690.TWO 1.0 1000
3430 2021-07-19 CAXPD 1.0 10
2642 2021-04-15 035720.KS 1.0 1
dtypes:日期:物件符號:物件分子:float64分母:int64
我正在嘗試以pd.assign以下形式為該df分配一個分類器
df = df.assign(category = ['forward' if numerator > denominator else 'reverse' for numerator in df[['numerator', 'denominator']]])
但我收到一個 TypeError 說明:
TypeError: Invalid comparison between dtype=int64 and str
我嘗試過明確地投射它們:
df = df.assign(category = ['forward' if df['numerator'] > df['denominator'] else 'reverse' for df['numerator'] in df])
但收到另一個 TypeError 說明:
TypeError: '>' not supported between instances of 'str' and 'int'
這很令人困惑,因為我不是在比較字串,而是在比較 int 和 float。
任何幫助將不勝感激。
uj5u.com熱心網友回復:
你仍然可以這樣做np.where
import numpy as np
df = df.assign(category = np.where(df['numerator']>df['denominator'],
'forward',
'reverse')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/434039.html
標籤:python-3.x 熊猫
