Идея заключается в преобразовании имен столбцов date
в DatetimeIndex
и split
из .
в MultiIndex
:
dfs = []
for subdirname in glob.iglob('C:/Users/stacey/WorkDocs/tradeopt/'+filename+'//BBG*/tradeopt.is-pnl*.lzma', recursive=True):
out = []
with lzma.open(subdirname, mode='rt') as file:
print(subdirname)
for line in file:
items = line.strip().split(",")
out.append(items)
if len(out) > 0:
a = pd.DataFrame(out[1:], columns=out[0]).set_index('date')
a.index = pd.to_datetime(a.index)
dfs.append(a)
, а затем используйте concat
и sum
по именам столбцов:
df = pd.concat(dfs, axis=1).sum(level=0, axis=1)
Вы уже обнаружили самый простой способ указать мелкий клон в Git-SVN, указав номер ревизии SVN что вы хотите начать свой клон с ( -r $ REV: HEAD
).
Например: git svn clone -s -r1450: HEAD some / svn / repo
Структура данных Git основана на указателях в ориентированном ациклическом графе (DAG), что делает его тривиальным возвращаться назад n
фиксирует. Но в SVN (и, следовательно, в Git-SVN) вам придется найти номер ревизии самостоятельно.
Я часто использую следующее, чтобы получить ограниченное количество ревизий из нашего огромного дерева подверсий (скоро мы дойдем до svn revision 35000).
# checkout a specific revision
git svn clone -r N svn://some/repo/branch/some-branch
# enter it and get all commits since revision 'N'
cd some-branch
git svn rebase
И хороший способ узнать, где началась ветка, - это сделать svn log
и найти первый в ветке (последний в списке при выполнении):
svn log --stop-on-copy svn://some/repo/branch/some-branch
Пока что я на самом деле не сочли нужным отслеживать все ветки. На клонирование уходит слишком много времени, а svn и git не работают вместе так хорошо, как хотелось бы. Я обычно создаю файлы патчей и применяю их к клону git другой ветки svn.