Pandas 如何向多索引列数据帧添加值
我的数据帧是Pandas 如何向多索引列数据帧添加值,pandas,Pandas,我的数据帧是 a b 1 2 1 2 0 0.281045 0.975469 -0.538213 -0.180008 1 0.128696 1.875480 0.247637 -0.047927 我想将矩阵插入(a,3)、(b,3) 似乎没有合适的方法为多索引数据帧添加值,下面是我尝试的代码: df[:,:,3] = [[1, 1
a b
1 2 1 2
0 0.281045 0.975469 -0.538213 -0.180008
1 0.128696 1.875480 0.247637 -0.047927
我想将矩阵插入(a,3)、(b,3)
似乎没有合适的方法为多索引数据帧添加值,下面是我尝试的代码:
df[:,:,3] = [[1, 1],
[1, 1]]```
But it didn't work...
您可以使用
MultiIndex
创建新的DataFrame
,然后通过排序MultiIndex
将其追加到数据中:
arr = np.array([[1, 1],[1, 1]])
df1 = pd.DataFrame(arr,
index=df.index,
columns= pd.MultiIndex.from_product([df.columns.levels[0], [3]]))
df = df.join(df1).sort_index(axis=1)
print (df)
a b
1 2 3 1 2 3
0 0.281045 0.975469 1 -0.538213 -0.180008 1
1 0.128696 1.875480 1 0.247637 -0.047927 1
您可以使用
MultiIndex
创建新的DataFrame
,然后通过排序MultiIndex
将其追加到数据中:
arr = np.array([[1, 1],[1, 1]])
df1 = pd.DataFrame(arr,
index=df.index,
columns= pd.MultiIndex.from_product([df.columns.levels[0], [3]]))
df = df.join(df1).sort_index(axis=1)
print (df)
a b
1 2 3 1 2 3
0 0.281045 0.975469 1 -0.538213 -0.180008 1
1 0.128696 1.875480 1 0.247637 -0.047927 1
那么,我们读取多索引的技术是什么呢?我在堆栈溢出上发现了一个代码,它似乎有效,但似乎无效robust@sammywemmy-我在文本编辑器中更改数据,这不是一种很好的技术:(那么,你读取多索引的技术是什么呢?我在堆栈溢出上发现了一段代码,它似乎有效,但似乎无效robust@sammywemmy-我在文本编辑器中更改数据,不是很好的技术:(
arr = np.array([[1, 1],[1, 1]])
df1 = pd.DataFrame(arr,
index=df.index,
columns= pd.MultiIndex.from_product([df.columns.levels[0], [3]]))
df = df.join(df1).sort_index(axis=1)
print (df)
a b
1 2 3 1 2 3
0 0.281045 0.975469 1 -0.538213 -0.180008 1
1 0.128696 1.875480 1 0.247637 -0.047927 1