gpt4 book ai didi

python - 具有分层列的数据框的 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:43 24 4
gpt4 key购买 nike

我有一个在 pandas 中创建的分层数据框:

import pandas as pd
import numpy as np
col_index = pd.MultiIndex.from_product([[0,1], ['a', 'b', 'c']])
df_outer = pd.DataFrame(index=range(4), columns=col_index)
print(df_outer)

0 1
a b c a b c
0 NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN

我想知道是否可以用另一个数据框填充此数据框中的每个条目,例如:

inner_names = ['w', 'x', 'y', 'z']
df_inner = pd.DataFrame(np.random.randn(4,4), index=inner_names, columns=inner_names)

如果这是一个坏主意,那么创建一些其他易于索引的数据结构(包含我想要放入 df_outer 元素中的数据帧)的更好方法是什么?

最佳答案

这有点疯狂,因为列中需要 3 个级别,索引中需要 2 个级别,然后通过使用 slicers 选择进行分配:

np.random.seed(452)

col_index = pd.MultiIndex.from_product([[0,1], ['a', 'b', 'c'], ['w', 'x']])
idx = pd.MultiIndex.from_product([range(2), ['w', 'x']])
df_outer = pd.DataFrame(columns=col_index, index=idx)
print(df_outer)
0 1
a b c a b c
w x w x w x w x w x w x
0 w NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 w NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

inner_names = ['w', 'x']
df_inner = pd.DataFrame(np.random.randn(2,2), index=inner_names, columns=inner_names)
print(df_inner)
w x
w -0.182421 0.962712
x -0.118524 -0.784380

idx = pd.IndexSlice
df_outer.loc[idx[0,:], idx[0, 'a', :]]= df_inner.values
print(df_outer)
0 1
a b c a b c
w x w x w x w x w x w x
0 w -0.182421 0.962712 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
x -0.118524 -0.78438 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 w NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
x NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

关于python - 具有分层列的数据框的 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com