【问题标题】:Concat a lot of panda data frames with same columns and same indexes连接大量具有相同列和相同索引的熊猫数据帧
【发布时间】:2020-02-21 08:40:26
【问题描述】:
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
您可以读取第一个文件。重命名列以包含 _pex
df = pd.read_csv('/kaggle/input/Data/ETFs/pex.us.txt')
renamed = ['Date']
renamed += [str(col) + '_pex' for col in df.columns[1:]]
df.columns = renamed
然后您可以遍历文件,每次都给出从文件名中获得的股票名称的后缀。然后将其与原始数据框合并,如下所示:
counter = 0
for filename in os.listdir('/kaggle/input/Data/ETFs/'):
if filename == 'pex.us.txt':
continue
name = (filename.split('.')[0])
data = pd.read_csv('/kaggle/input/Data/ETFs/'+filename)
renamed = ['Date']
renamed += [str(col) + '_' + name for col in data.columns[1:]]
data.columns = renamed
df = pd.merge(df, data, on='Date', how='outer')
counter +=1
if counter == 5:
break
请注意,我设置了一个计数器,以便您停下来查看结果、进行更改并重试。
我在 kaggle 的在线笔记本上的时间用完了,然后当我说“重新连接”时,我得到了一个不同的目录,我不确定这是怎么回事,但希望你能明白。当您执行 how='outer' 连接时,您在合并的 df 中获得的日期行应该是来自被合并的两个数据框的日期的联合,这样应该可以解决每个文件中并非所有日期都相同的问题。