我有以下的pd。数据帧:
df = pd.DataFrame(
data=[['dog', 'kg', 100, 241], ['cat', 'lbs', 300, 1]],
columns=['animal', 'unit', 0, 1],
).set_index(['animal', 'unit'])
df.columns = pd.MultiIndex.from_tuples(list(zip(*[['2019', '2018'], ['Apr', 'Oct']])))
我想把它转换成二维矩阵,在索引或列上没有多级索引:
pd.DataFrame(
data=[
['dog', 'kg', 100, '2019', 'Apr'],
['dog', 'kg', 241, '2018', 'Oct'],
['cat', 'lbs', 300, '2019', 'Apr'],
['cat', 'lbs', 1, '2018', 'Oct']
],
columns=['animal', 'unit', 'value', 'year', 'month']
)
为了实现这一点,我使用
df.stack().stack()
->这就成了一个问题
pd.Series
然后我就这么做了
.reset_index()
在这些系列上,t转换为数据帧。
我的问题是——如何避免第二个(或多个)
stack()
?
有没有办法叠加一个pd。数据帧,直到它成为
警察局。系列
?