【问题标题】:Appending CSV files with filename in Python在 Python 中附加带有文件名的 CSV 文件
【发布时间】:2018-11-18 12:55:53
【问题描述】:

我有一个目录,其中包含多个包含外汇定价历史的 CSV 文件:

hist_EUR_CHF.csv
hist_EUR_JPY.csv
hist_EUR_USD.csv
etc.....

我使用以下脚本将所有 csv 文件合并到一个文件中:

import pandas as pd
import os
files = [f for f in os.listdir('.') if os.path.isfile(f)]
merged = []
for f in files:
    filename, ext = os.path.splitext(f)
    if ext == '.csv':
        read = pd.read_csv(f)
        merged.append(read)
result = pd.concat(merged)
result.to_csv('_FX_historical.csv')

组合的 csv 文件现在包含日期、打开、高、低、关闭:

Date          Open        High        Low         Close
2018-01-06   1.2032      1.2106      1.1988      1.2033 
2018-01-07   1.2041      1.2067      1.2031      1.2044 
2018-01-06   93.9023     94.0105     93.8832     93.9024 
2018-01-07   93.9671     93.9934     93.9104     93.9672 

我想添加两列来标识数据所代表的外汇对。

如何追加文件以添加两列:From 列和To 列?

我的新文件会这样写:

Date          Open        High        Low         Close    From    To
2018-01-06   1.2032      1.2106      1.1988      1.2033     EUR   USD
2018-01-07   1.2041      1.2067      1.2031      1.2044     EUR   USD
2018-01-06   93.9023     94.0105     93.8832     93.9024    EUR   JPY
2018-01-07   93.9671     93.9934     93.9104     93.9672    EUR   JPY

【问题讨论】:

    标签: python-2.7 append filenames concat


    【解决方案1】:

    您可以对第二列执行相同的操作

       fromP = ['EUR2','EUR2','EUR2','EUR2']
       with open('_FX_historical.csv','r') as csvinput:
        with open('a2.csv', 'w') as csvoutput:
            writer = csv.writer(csvoutput, lineterminator='\n')
            reader = csv.reader(csvinput)
    
            all = []
            row = next(reader)
            row.append('From')
            all.append(row)
            i=0
            for row in reader:
                row.append(fromP[i])
                all.append(row)
                i=i+1
        writer.writerows(all)
    

    【讨论】:

    • Naj meh,我的目录中有很多文件每天都在动态变化。有没有办法自动附加“发件人”名称而不是硬编码?
    猜你喜欢
    • 2021-12-14
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    相关资源
    最近更新 更多