In [4]:
import numpy as np
import pandas as pd
In [23]:
import pandas.util.testing as tm; tm.N = 3
def unpivot(frame):
N, K = frame.shape
data = {'value' : frame.values.ravel('F'),
'variable' : np.asarray(frame.columns).repeat(N),
'date' : np.tile(np.asarray(frame.index), K)}
return pd.DataFrame(data, columns=['date', 'variable', 'value'])
df = unpivot(tm.makeTimeDataFrame())
In [24]:
df
Out[24]:
In [29]:
pivot_df=df.pivot(index='date',columns='variable',values='value')
pivot_df
Out[29]:
In [30]:
pivot_df=df.pivot(index='date',columns='variable',values='value')
pivot_df.columns = ['_'.join(col).strip() for col in pivot_df.columns.values]
pivot_df.reset_index()
Out[30]:
In [31]:
df['value2'] = df['value']*2
df
Out[31]:
In [63]:
pivot_df = df.pivot(index='date',columns='variable')
pivot_df
Out[63]:
In [64]:
pivot_df.columns = ['_'.join(col).strip() for col in pivot_df.columns.values]
pivot_df.reset_index(level=0)
Out[64]:
In [ ]:
In [80]:
columns = pd.MultiIndex.from_tuples([
('A', 'cat', 'long'), ('B', 'cat', 'long'),
('A', 'dog', 'short'), ('B', 'dog', 'short')
],
names=['exp', 'animal', 'hair_length']
)
df = pd.DataFrame(np.random.randn(4, 4), columns=columns)
df
Out[80]:
In [81]:
df.columns
Out[81]:
In [89]:
stacked = df.stack(level=['exp','animal'])
stacked
Out[89]:
In [97]:
stacked.reset_index(level=[0,1],drop=True).stack().to_frame().reset_index()
Out[97]:
In [98]:
columns = pd.MultiIndex.from_tuples([('A', 'cat'), ('B', 'dog'),
('B', 'cat'), ('A', 'dog')],
names=['exp', 'animal'])
In [99]:
index = pd.MultiIndex.from_product([('bar', 'baz', 'foo', 'qux'),
('one', 'two')],
names=['first', 'second'])
In [102]:
df = pd.DataFrame(np.random.randn(8, 4), index=index, columns=columns)
df
Out[102]:
In [110]:
df3 = df.iloc[[0, 1, 4, 7], [1, 2]]
df3
Out[110]:
In [112]:
df
Out[112]:
In [116]:
df.stack()
Out[116]:
In [118]:
df.stack().mean(1).unstack()
Out[118]:
In [ ]: