gpt4 book ai didi

python - 从现有的 DataFrame 构建分层索引的 DataFrame

转载 作者:行者123 更新时间:2023-11-30 23:36:37 25 4
gpt4 key购买 nike

我有两个具有相同列和索引的数据框。我想将它们组合成具有分层索引的第三个数据帧,维护当前索引并添加第二个数据帧来标识每个数据帧的来源。这是我尝试过的:

df_a = pd.DataFrame(randn(3, 2), columns=["x", "y"], index=range(3))
df_b = pd.DataFrame(randn(3, 2), columns=["x", "y"], index=range(3))
tuples = list(itertools.product(["a", "b"], range(3)))
df = pd.DataFrame(columns=["x", "y"], index=pd.MultiIndex.from_tuples(tuples))
df.loc["a"] = df_a
df.loc["b"] = df_b

但是,df 仍然充满 NaN,而我期望它会填充来自 df_adf_b 的值。这确实有效:

df.loc["a"] = np.array(df_a)

但似乎既迂回又错误。

我对分层索引有什么不明白的地方?实现我的目标的最佳方法是什么?

最佳答案

In [1]: df_a = pd.DataFrame(randn(3, 2), columns=["x", "y"], index=range(3))

In [2]: df_b = pd.DataFrame(randn(3, 2), columns=["x", "y"], index=range(3))

In [3]: pd.concat([df_a, df_b], keys=['a', 'b'])
Out[3]:
x y
a 0 0.913812 -1.719241
1 0.544462 0.845426
2 -0.269518 -1.549679
b 0 0.534311 1.693824
1 0.119147 -0.171002
2 0.595658 0.588252

关于python - 从现有的 DataFrame 构建分层索引的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16371095/

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