保存to_csv只读取列,而不是行

时间:2015-12-06 17:13:23

标签: python csv pandas

我一直在阅读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,他是,所以我不明白他为什么不详细解释它们。

1 个答案:

答案 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')