首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python大熊猫-如何将日期明智的库存csv转换为库存的csv文件

python大熊猫-如何将日期明智的库存csv转换为库存的csv文件
EN

Stack Overflow用户
提问于 2017-07-11 04:36:17
回答 3查看 510关注 0票数 0

我有日期明智的股票csv文件如下所示。

代码语言:javascript
复制
EQ070717.CSV
EQ070716.CSV
EQ070715.CSV
[...]

他们有这种格式的股票数据:

代码语言:javascript
复制
SC_NAME,OPEN,HIGH,LOW,CLOSE
ABB,1457.70,1469.95,1443.80,1452.90,
AEGI,189.00,193.00,187.40,188.70
HDFC,1650.00,1650.00,1617.05,1629.20
[...]

如何将它们转换为库存特定的csv文件,这些文件可以作为熊猫数据加载。我可以在.net中这样做,但我只想知道在python/大熊猫中是否有任何简单的方法可用。

编辑:添加预期输出

根据股票名称创建单独的股票文件:

代码语言:javascript
复制
ABB.csv
AEGI.csv
HDFC.csv

对每个股票从所有文件中提取股票数据并添加到该股票csv: (例如股票ABB ),读取每个日期明智的csv的股票数据,并将该信息添加到csv ABB.csv中的新行。也可以从文件名或文件修改日期属性中选择日期值。

代码语言:javascript
复制
DATE, OPEN,HIGH,LOW,CLOSE
070717, 1457.70,1469.95,1443.80,1452.90
070716, 1456.70,1461.95,1441.80,1450.90
070715, 1455.70,1456.95,1441.80,1449.90
EN

回答 3

Stack Overflow用户

发布于 2017-07-11 04:39:06

我认为您需要glob来选择所有文件,在list comprehension中创建DataFrames dfs列表,然后从所有CSV中为一个大的DataFrame使用concat

代码语言:javascript
复制
import glob

files = glob.glob('files/*.CSV')
dfs = [pd.read_csv(fp) for fp in files]
df = pd.concat(dfs, ignore_index=True)

如果有必要,输出DataFrame中的文件名

代码语言:javascript
复制
files = glob.glob('files/*.CSV')
dfs = [pd.read_csv(fp) for fp in files]
#win solution - double split
keys = [x.split('\\')[-1].split('.')[0] for x in files]
df = pd.concat(dfs, keys=keys)
票数 1
EN

Stack Overflow用户

发布于 2017-07-11 05:15:07

添加到@jezrael解决方案。因为用户希望每个股票特定的csv文件。

代码语言:javascript
复制
for stock_name in df.SC_NAME.unique():
    df[df['SC_NAME']==stock_name].to_csv(path_to_dir+stock_name+'.csv')
票数 1
EN

Stack Overflow用户

发布于 2017-07-11 05:37:13

我的方法是建立一个sqlite数据库,只有一个表。只有三列,market_date、符号和csv_string (如果您想要保留相对位置,可以在文件中使用line# )。读取所有文件并逐行将数据加载到表中。在符号列的表上创建索引。然后为read symbol, csv_string from stock_table order by symbol, market_date创建一个游标。使用itertools.groupby可以让您知道什么时候您已经循环了所有的符号,这样您就可以关闭最后一个文件并打开下一个文件。

当然,如果您有足够的数据,可以全部装入内存,您只需将元组插入到列表中,对列表进行排序,并使用groupby对其进行循环以生成您的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45025486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档