在读取多个 csv 文件时,是不是可以使用每只股票的名称创建一个名为ticker 的列?
Posted
技术标签:
【中文标题】在读取多个 csv 文件时,是不是可以使用每只股票的名称创建一个名为ticker 的列?【英文标题】:Is it possible to create a column called ticker with the name of each stock when reading in multiple csv files?在读取多个 csv 文件时,是否可以使用每只股票的名称创建一个名为ticker 的列? 【发布时间】:2019-03-09 09:54:11 【问题描述】:我对 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 的文件名...
这将更容易识别哪个股票是哪个。
【问题讨论】:
【参考方案1】:根据this之前的帖子,我被引导相信你有两个明确的选择。 (1) 在原始 read_csv 命令中包含 names=[] 以指定股票名称,或者 (2) 在加载前将列名添加到数据框中。
方法 (1) 可能涉及用以下代码 sn-p 替换您当前的读取:
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 的一列数据,但如果您想在其中放入多列,您只需在列名列表中指定多个名称。
【讨论】:
以上是关于在读取多个 csv 文件时,是不是可以使用每只股票的名称创建一个名为ticker 的列?的主要内容,如果未能解决你的问题,请参考以下文章
Python plotly 折线图 y 轴按从 CSV 读取的顺序打印,而不是按顺序打印
使用 pandas 读取 CSV 日期会返回 datetime 而不是 Timestamp
pandas读取csv文件时避免科学计数法(xxxe+09)
读取股票数据时出错:“DatetimeProperties”对象没有属性“weekday_name”,“NoneType”对象没有属性“to_csv”