Source code for pytimings.processing
from collections.abc import Iterable
from logging import getLogger
from pathlib import Path
from typing import Union
import pandas as pd
[docs]
def csv_to_dataframe(filenames: Iterable[Union[str, Path]], sort=False):
"""Read csv files into a Pandas.DataFrame"""
if sort:
filenames = sorted(filenames)
tbls = [pd.read_csv(fn, index_col=0, header=0, names=[fn]) for fn in filenames]
timings_cols = [s for s in tbls[0].T.columns if "pytimings::data" not in s]
dataframe = pd.concat(tbls, axis=1).T
assert all(dataframe["pytimings::data::_sections"] == dataframe["pytimings::data::_sections"].iloc[0])
if not all(dataframe["pytimings::data::_version"] == dataframe["pytimings::data::_version"].iloc[0]):
getLogger("").warning("input csv files created from different pytimings versions")
for col in timings_cols:
dataframe[col] = pd.to_numeric(dataframe[col])
return dataframe