0

I want to write '1' if maintain_margin == 0.040 in a new column named 'leverage' and write '2' if maintain_margin < 0.040 But my code always write 2. I don't know what is wrong.

My df is like this:

                symbol  maintain_margin  max_leverage
0     10000NFTUSDT            0.040          12.5        
15     1000BTTUSDT            0.040          12.5        
30    1000LUNCUSDT            0.020          25.0        
45     1000XECUSDT            0.040          12.5        
60       1INCHUSDT            0.020          25.0        
75        AAVEUSDT            0.020          25.0        
90         ACHUSDT            0.040          12.5        
105        ADAUSDT            0.010          50.0        
135       AGLDUSDT            0.020          25.0        

my expected result:

                symbol  maintain_margin  max_leverage leverage
0     10000NFTUSDT            0.040          12.5        1
15     1000BTTUSDT            0.040          12.5        1
30    1000LUNCUSDT            0.020          25.0        2
45     1000XECUSDT            0.040          12.5        1
60       1INCHUSDT            0.020          25.0        2
75        AAVEUSDT            0.020          25.0        2
90         ACHUSDT            0.040          12.5        1
105        ADAUSDT            0.010          50.0        2
135       AGLDUSDT            0.020          25.0        2

my code is like this:

bybit = requests.get('https://api.bybit.com/public/linear/risk-limit')
e = bybit.json()
df_risk = pd.DataFrame(e['result'])
df_risk = df_risk[df_risk.is_lowest_risk != 0]
df_risk = df_risk.drop(['id', 'limit', 'starting_margin', 'section', 'is_lowest_risk', 'created_at', 'updated_at'], axis=1)
df_risk["leverage"] = ["1" if ele  == "0.040" else "2" for ele in df_risk["maintain_margin"]]
print(df_risk)
One boy
  • 216
  • 1
  • 7
  • In your list comprehension you're checking if `ele` equals a string `"0.040"`, but `ele` is a float type so you should check if `ele == 0.040`. – Zephyrus Dec 06 '22 at 14:48

0 Answers0