elephant.pandas_bridge.multi_spiketrains_to_dataframe¶
- elephant.pandas_bridge.multi_spiketrains_to_dataframe(container, parents=True, child_first=True)[source]¶
Convert one or more neo.SpikeTrain objects to a pandas.DataFrame.
The objects can be any list, dict, or other iterable or mapping containing spiketrains, as well as any neo object that can hold spiketrains: neo.Block, neo.ChannelIndex, neo.Unit, and neo.Segment. Objects are searched recursively, so the objects can be nested (such as a list of blocks).
The pandas.DataFrame object has one column for each spiketrain, with each element being the spike time converted to a float value in seconds. columns are padded to the same length with NaN values.
The column heading is a pandas.MultiIndex with one index for each of the scalar attributes and annotations of the respective spiketrain. The index is the spike number.
- Parameters:
- containerlist, tuple, iterable, dict,
neo Block, neo Segment, neo Unit, neo ChannelIndex The container for the spiketrains to convert.
- parentsbool, optional
Also include attributes and annotations from parent neo objects (if any).
- child_firstbool, optional
If True (default True), values of child attributes are used over parent attributes in the event of a name conflict. If False, parent attributes are used. This parameter does nothing if parents is False.
- Returns:
- pandas DataFrame
A DataFrame containing the spike times from container.
Notes
The index name is spike_number.
Attributes that contain non-scalar values are skipped. So are annotations or attributes containing a value of None.
quantity.Quantities types are incompatible with pandas, so attributes and annotations of that type are converted to a tuple where the first element is the scalar value and the second is the string representation of the units.