cryptoref
cryptoref

Reputation: 413

Pivot table not creating with datetimeindex from dataframe

I'm having trouble creating a pivot table from a dataframe with a datetimeindex as the index. Editing to show complete code

The code in question is

unit1 = ["U1", "U1", "U1", "U1", "U1", "U1"]
name1 = ["fn ln", "fn ln2", "fn ln3", "fn ln4", "fn ln5", "fn ln6"]
count1 = [2,4,6,8,10,12]

df = pd.DataFrame( {'Date': pd.Timestamp('2016-01-01'),
                    'Unit': unit1,
                    'Name"': name1,
                    'Count': count1})
df2 = df.set_index(pd.DatetimeIndex(df.Date))
df2['Month'] = df2.index.month

# this line succeeds
pt = pd.pivot_table(df, index=df2.index.month, values='Count')

# this line fails with Series object has no attribute month
pt = pd.pivot_table(df, index=df2.Month.month, values='Count')

The internals for the dataframe (_stat_axis) show that the index field is DatetimeIndex. The month column also has the datetimeindex setting but creating the pivot table still gives Series error.

Upvotes: 2

Views: 714

Answers (1)

jezrael
jezrael

Reputation: 862571

Maybe you can add parameter values to pivot_table:

print df
           Unit   Name  Count
2013-01-01   U1  fn ln      2
2013-01-01   U1  fn ln    200
2013-01-01   U2  fn ln     55

print pd.pivot_table(df, index=df.index.month, values="Count", aggfunc=np.sum)
1    257
Name: Count, dtype: int64

Upvotes: 1

Related Questions