【发布时间】:2020-09-15 11:00:54
【问题描述】:
我正在使用 Pandas 1.1.2 和 Python 3.6
我的文件夹中有 CV 文件,格式如下(文件中没有标题):
sample.csv
2001-01-01,43,1000
2001-01-02,37,42.5
第一列是日期,其余列是数字。我想全局化文件夹中的所有 *.cv 文件,并在数字列中添加数字所有文件中存在的日期
这是我到目前为止的代码(可能与优化有关):
example.py
from pathlib import Path
from datetime import datetime as dt
import pandas as pd
ROOT_DIR='/some/path'
DATA_COL_DATE = 'dt'
COL_NAMES = ('dt','weight','age')
dates = []
# First get all dates available
pathlist = Path(ROOT_DIR).glob('**/*.csv')
for filename in pathlist:
# because filename is object not string
with open (str(filename), 'r') as f:
temp = list(set([dt.strptime(x[0], DATE_FORMAT) for x in f.readlines()]))
dates.extend(temp)
dates.sort()
# Second pass :/
for filename in pathlist:
# because filename is object not string
df = pd.read_csv(str(filename), names=COL_NAMES, header=None, parse_dates=parse_dates)
df2 = df.set_index(df[DATA_COL_DATE])
df2.sort_index(inplace=True)
# ... now what?
如何按日期对列求和 - 条件是只有在 ALL FILES 中有行的日期才会在聚合结果中求和?
【问题讨论】: