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.

Answers


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

Need Your Help

scanmem (Linux) vs. CheatEngine (Win)

linux windows memory process cheat-engine

scanmem is much slower than CheatEngine (although I run CheatEngine in my VirtualBox). Further scanmem is not able to scan for any-values (*) but CheatEngine is. How comes? Is there a better altern...

How to use jquery VALUE in an ajax success function

php jquery ajax

I cannot use value div name in fourth-last line