-
-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Closed
Labels
Duplicate ReportDuplicate issue or pull requestDuplicate issue or pull requestTimedeltaTimedelta data typeTimedelta data typeVisualizationplottingplotting
Milestone
Description
Hello,
I did
import numpy as np
import pandas as pd
from matplotlib.pyplot as plt
idx = pd.date_range('20140101', '20140201')
df = pd.DataFrame(index=idx)
df['col0'] = np.random.randn(len(idx))
s_idx = pd.Series(idx, index=idx) # need to do this because we can't shift index
diff_idx = (s_idx-s_idx.shift(1)).fillna(pd.Timedelta(0))
df['diff_dt'] = diff_idx
df['diff_dt'].plot()
but it raises Empty 'Series': no numeric data to plot
In [78]: df.dtypes
Out[78]:
col0 float64
diff_dt timedelta64[ns]
dtype: object
In [79]: type(df['diff_dt'][1])
Out[79]: pandas.tslib.Timedelta
I don't understand if data inside diff_dt
columns are numpy.timedelta64
or pd.Timedelta
df['diff_dt'].map(lambda x: x.value)
raises AttributeError: 'numpy.timedelta64' object has no attribute 'value'
but it seems that I can get value
for a given data (let's say row 10)
In [97]: df['diff_dt'][10].value
Out[97]: 86400000000000
I don't understand why...
But I also don't understand how I could plot diff_dt column without doing an uggly:
df['diff_dt'].map(lambda x: x/np.timedelta64(1, 'ns')).plot()
But I don't know how I could automatically get this np.timedelta64(1, 'ns')
Maybe Pandas could plot Timedelta (or np.timedelta64
) out of the box ?
because that's interesting to know for example if sampling period is constant.
Kind regards
Metadata
Metadata
Assignees
Labels
Duplicate ReportDuplicate issue or pull requestDuplicate issue or pull requestTimedeltaTimedelta data typeTimedelta data typeVisualizationplottingplotting