不包括IF函数中的两列

2024-10-06 11:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个for,我想从数据帧中排除'date'和'unix'列

我怎么做

from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload 
import pandas as pd

cdd = CryptoDataDownload()

data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")

for col in data.columns:
  if col !=  'date' and 'unix' :
    data[col]=data[col].pct_change()
    data.dropna(inplace=True)
    data[col] = preprocessing.scale(data[col].values)

Tags: 数据fromimportpandasfordatadateas
2条回答

如果要在if语句中添加第二个条件,则需要设置整个条件

list_ = ["a", "b", "c", "d"]

for elem in list_:
    if elem != "a" and "b":
        print(elem)
# Output : b, c, d

for elem in list_:
    if elem != "a" and elem != "b":
        print(elem)
# Output : c, d

这意味着:

for col in data.columns:
  if col !=  'date' and col != 'unix' :
    print(col)

对于测试,可以将inlist一起使用多个值:

if col not in ['date', 'unix']:

解决方案的另一个想法是对列表中未指定的所有列使用^{},然后使用^{},删除缺少的行并最后进行规范化:

cols = data.columns.difference(['date', 'unix'])
data[cols]=data[cols].apply(lambda x: x.pct_change())
data = data.dropna(subset=cols)
data[cols]=data[cols].apply(lambda x: preprocessing.scale(x))

相关问题 更多 >