我一直在阅读csv文件的所有行并保存到csv文件中(我使用pandas 0.17.1)。
我有一个插入csv文件的代码列表:它们被插入到每一列中,如下所示:
A列:AAPL / B列:TSLA / C列:EXPD ......等等。
现在,我已经在这个列表中添加了3000个新的代码,所以我改变了csv的方向,将每个股票代码放入第一列的每一行,如下所示:
A栏
AAPL
TSLA
EXPD
......等等。
问题是:当我将文档保存到csv文件中时,它只读取第一行,而没有其他内容。
在我的例子中,如果我在第一行" AAPL",我将获得一个只有AAPL数据的csv文件。
这是我的代码:
symbols_list = pd.read_csv('/home/andrea/htrade/python/titoli_rows.csv')
symbols = []
for ticker in symbols_list:
r = DataReader(ticker, "yahoo",
start=datetime.datetime.now() - BDay(20),
end=datetime.datetime.now())
# add a symbol column
r['Symbol'] = ticker
symbols.append(r)
# concatenate all the dfs
df = pd.concat(symbols)
#define cell with the columns that i need
cell = df[['Symbol', 'Open', 'High', 'Low', 'Adj Close', 'Volume']]
cell.reset_index().sort_values(['Symbol', 'Date'], ascending=[1, 0]).set_index('Symbol').to_csv('/home/andrea/Dropbox/HT/stock20.csv', date_format='%d/%m/%Y')
为什么我在每列中粘贴一个自动收报机,csv包含每个自动收报机的所有数据,但如果我在每一行粘贴一个自动收报机,它会只读取第一行?
我已经试过看看" read_csv"功能正在正确读取csv,他是,所以我不明白他为什么不详细解释它们。
答案 0 :(得分:1)
我刚刚运行了下面的内容,并通过read_csv
导入了一个简短的符号列表,它似乎工作正常:
from datetime import datetime
import pandas.io.data as web
from pandas.tseries.offsets import BDay
df = pd.read_csv(path_to_file).loc[:, ['symbols']].dropna().squeeze()
symbols = []
for ticker in df.tolist():
r = web.DataReader(ticker, "yahoo",
start= datetime.now() - BDay(20),
end= datetime.now())
r['Symbol'] = ticker
symbols.append(r)
df = pd.concat(symbols).drop('Close', axis=1)
cell= df[['Symbol','Open','High','Low','Adj Close','Volume']]
cell.reset_index().sort_values(['Symbol', 'Date'], ascending=[1,0]).set_index('Symbol').to_csv(path_to_file, date_format='%d/%m/%Y')