如何将 Pandas 数据框中的所有非 NaN 值替换为 1 但单独保留 NaN 值?这几乎就是我正在寻找的。问题是它也使 NaN 值为 0。然后我必须将它们重置为 NaN 之后。
我想要这个
a b
0 NaN QQQ
1 AAA NaN
2 NaN BBB
Run Code Online (Sandbox Code Playgroud)
成为这个
a b
0 NaN 1
1 1 NaN
2 NaN 1
Run Code Online (Sandbox Code Playgroud)
这段代码几乎就是我想要的
newdf = df.notnull().astype('int')
Run Code Online (Sandbox Code Playgroud)
上面的代码是这样做的
a b
0 0 1
1 1 0
2 0 1
Run Code Online (Sandbox Code Playgroud) 我正在尝试下载股票代码列表的历史数据并将每个数据导出到 csv 文件。我可以把它作为一个 for 循环来工作,但是当股票行情列表在 1000 的时候这很慢。我正在尝试对进程进行多线程处理,但我不断收到许多不同的错误。有时它只会下载 1 个文件,有时会下载 2 或 3 次,甚至会下载 6 次,但绝不会超过这个数。我猜这与拥有 6 核 12 线程处理器有关,但我真的不知道。
import csv
import os
import yfinance as yf
import pandas as pd
from threading import Thread
ticker_list = []
with open('tickers.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
name = None
for row in reader:
if row[0]:
ticker_list.append(row[0])
start_date = '2019-03-03'
end_date = '2020-03-04'
data = pd.DataFrame()
def y_hist(i):
ticker = ticker_list[i]
data = yf.download(ticker, start=start_date, end=end_date, group_by="ticker")
data.to_csv('yhist/' + ticker …
Run Code Online (Sandbox Code Playgroud)