在读取多个csv文件时,是否可以创建一个名为ticker的列,其中包含每个股票的名称?
在读取多个csv文件时,是否可以创建一个名为ticker的列,其中包含每个股票的名称?
我对Python还比较新,想要在读取多个csv文件时生成一个名为
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()
是否可能创建一个名为
问题的出现的原因是在读取多个CSV文件时,需要创建一个名为"ticker"的列,用于存储每个股票的名称。解决方法有两种:一种是在读取CSV文件时使用参数names=[]来指定股票名称,另一种是在加载数据之前将列名添加到数据帧中。
第一种方法可以使用以下代码替换当前的读取代码:
df=pd.read_csv(file,names=[file[len(path)+1:-4]],index_col=None)
这里假设通过查看路径后的斜杠之后的所有字符,并且直到.csv结尾的位置来获取所需的股票名称的字符串。
第二种方法可以在读取CSV文件后,但在将数据追加到数据帧之前,添加以下代码:
df.columns=[file[len(path)+1:-4]]
这里假设您只有/想要每个CSV中的一列数据,但如果您想要多列数据,则只需在列名列表中指定多个名称。
根据这个之前的回答,可以选择其中一种方法来解决这个问题。