我对Python还是很陌生,并且在读取多个csv文件时需要一些帮助来生成一个名为Ticker
的新列。作为雅虎! Finance API已贬值,我正在从Yahoo!读取csv数据。为“ GOOG”,“ IBM”和“ AAPL”提供资金。以下代码将单个csv文件读取到一个DateFrame中,但是,很难区分哪只股票。
path =
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file in allFiles:
df = pd.read_csv(file,index_col=None,
header=0)
list_.append(df)
frame = pd.concat(list_)
frame.head()
是否可以创建一个名为Ticker
的列,该列的名称是每只股票的每次观察的csv文件的名称?例如。 GOOG.csv是Google的文件名,IBM.csv是IBM ...的文件名...
这将使识别哪只股票更容易。
答案 0 :(得分:0)
根据this的上一篇文章,我被认为是您有两个明确的选择。 (1)在原始的read_csv命令中包含names = []以指定库存名称,或者(2)在加载之前将列名称添加到数据框中。
方法(1)可能涉及将您当前的阅读内容替换为以下代码段:
df=pd.read_csv(file,names=[file[len(path)+1:-4]],index_col=None)
在这里,我假设我可以通过查看跟随一个斜杠的路径之后直到.csv的所有字符来获得所需的行情收录机的字符串。
方法(2)可以通过在读取csv之后但在追加数据帧之前添加以下代码行来实现:
df.columns=[file[len(path)+1:-4]]
在此响应中,我假设每个csv仅具有/想要一列数据,但是如果您想在其中放入多列,则只需在列名称列表中指定多个名称即可。