【发布时间】:2015-12-05 21:47:45
【问题描述】:
我的代码从一个目录中获取多个 csv 文件,并将所有数据放入我创建并称为“df”的数据帧中。每个 CSV 格式相同,但可以有不同的长度,所以这就是我想要做的:
我想在我的 df (DataFrame) 中有一个列,记录我拉入的每个 csv 中倒数第二个数据,然后再移动到下一个数据。我已经修改了下面的输出,以给你一个例子来说明我的意思。假设我将此列称为 BeforeLast。当您看到 0 值时,这意味着它不是我提取的 csv 中倒数第二条数据,如果您看到 1 值,则意味着它是我提取的 csv 中倒数第二条数据。
当 Python 拉入每个调用的 csv 时,我该怎么做?
import pandas as pd
import glob
import os
path =r'X:\PublicFiles\TradingData\CSV\RealMarkets\Weekly\Futures\Contracts\Corn C'
allFiles = glob.glob(path + "/*.csv") ##'*' means any file name can be grabbed
df = pd.DataFrame()
list_ = []
for file_ in allFiles:
names = ['Date', 'Open', 'High', 'Low', 'Close', 'Vol', 'OI']
df = pd.read_csv(file_, index_col = None, names = names)
list_.append(df)
frame = pd.concat(list_)
这是我当前数据帧 (df) 的示例
Date Open High Low Close Vol OI
0 20141212 427.00 427.00 427.00 427.00 0 0
1 20141219 429.00 429.00 424.00 424.00 0 0
2 20141226 424.00 425.00 423.00 425.00 0 0
3 20150102 422.75 422.75 417.50 417.50 0 0
这就是我想要的
Date Open High Low Close Vol OI BeforeLast
0 20141212 427.00 427.00 427.00 427.00 0 0 0
1 20141219 429.00 429.00 424.00 424.00 0 0 0
2 20141226 424.00 425.00 423.00 425.00 0 0 1
3 20150102 422.75 422.75 417.50 417.50 0 0 0 (this is the last piece of data in this csv and now it moves on to the next)
4 20141226 424.00 425.00 423.00 425.00 0 0 0
5 20150102 422.75 422.75 417.50 417.50 0 0 0
6 20141226 424.00 425.00 423.00 425.00 0 0 1
7 20150102 422.75 422.75 417.50 417.50 0 0 0
【问题讨论】:
标签: python csv pandas import dataframe