簡體   English   中英

如何不在python中獲得重復值

[英]How not to get repeating value in python

import pandas as pd
import os

os.chdir(r"C:\Users\Administrator\Desktop")
data = pd.read_csv("nifty.csv")

for i in range(9,len(data['SMA(10)'])):

    if (data['SMA(10)'][i] < data['Open(-1)'][i] and
             data['SMA(10)'][i] > data['Open'][i]):
        data['Trans'][i] = "Sell"

    elif(data['SMA(10)'][i] > data['Open(-1)'][i] and 
              data['SMA(10)'][i] < data['Open'][i]):
        data['Trans'][i] = "Buy"

    else:
        data['Trans'][i] = "Hold"
print("-----------------------------------------------------------------------")

print(data.head(50))

我不想將兩個買入/賣出價值放在一起,而是希望持有價值

這不是你使用 Pandas 的方式。 使用矢量化解決方案。 -1 為賣出,1 為買入,0 為持有。 比使用字符串更快,但您可以選擇替換它們。

data['Trans'] = np.select([((data['SMA(10)'] < data['Open(-1)']) & (data['SMA(10)'] > data['Open(-1)'])),
                           ((data['SMA(10)'] > data['Open(-1)']) & (data['SMA(10)'] < data['Open(-1)']))],
                           (-1, 1), 0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM