我有以下代码:
import pandas as pd
import datetime
import pandas as pd
from pandas_datareader import data as web
import matplotlib.pyplot as plt
from alpha_vantage.foreignexchange import ForeignExchange
import os
from os import path
from alpha_vantage.timeseries import TimeSeries
import matplotlib.pyplot as plt
import sys
while True:
if path.exists('stockdata.csv') == True:
data1 = pd.read_csv('stockdata.csv')
ts = TimeSeries(key='1ORS1XLM1YK1GK9Y', output_format='pandas')
data, meta_data = ts.get_intraday(symbol = 'spy', interval='1min', outputsize='full')
data = data.rename(columns={'1. open':'Open','2. high': 'High','3. low': 'Low', '4. close':'Close', '5. volume': 'Volume'})
data1 = data1.append(data)
data1.to_csv('stockdata.csv', sep= ' ')
break
else:
data1 = pd.DataFrame(columns=['Open','High','Low', 'Close','Volume'])
data1.to_csv('stockdata.csv', sep= ' ')
我要执行的操作是检查文件stockdata.csv
是否在当前目录中。如果找不到,则创建文件。
如果找到该文件,则在data
中下载间谍代码数据并将其附加到data1
并将其保存在csv文件中。
问题
Unnamed:0
列,为什么会有它?data
中的重复数据并将其附加到data1
?答案 0 :(得分:2)
所以您基本上有两个问题,我将一一解决。
如果要删除列Unnamed:0
,则必须使用data1.drop(['Unnamed:0'], axis = 1)
,这将从表中删除该列。
现在,如果要删除重复的行,可以使用data.drop_duplicates()
,这将删除重复的行并保持第一行不变。之后,您可以简单地pandas.concat(data1, data)
。
您基本上需要在pandas文档中查找方法,所有内容都以粗体和清晰的方式提到。 希望这会有所帮助。
答案 1 :(得分:2)
对于有关添加的未命名列的第一个问题:尝试根据对同一主题的this问题的可接受答案,传递index=False
或index_col=0
。
这迫使熊猫将第一列作为索引读取,因此不会添加其他列。