Fixed issues 177 (update) and 179: Pandas output now has a hook to change how it flattens names (e.g. to add underscores) by passing a `flatname` function. The default `flatname` is:
python
def flatname(branchname, fieldname, index):
out = branchname
if not isinstance(branchname, str):
out = branchname.decode("utf-8")
if fieldname is not None:
out += "." + fieldname
if index != ():
out += "[" + "][".join(str(x) for x in index) + "]"
return out
Also, Pandas-handling code was refactored out of uproot/tree.py and into uproot/_connector/to_pandas.py.