How to append MultiIndex rows to empty pandas dataframe(如何将多索引行追加到空的 pandas 数据帧)
                            本文介绍了如何将多索引行追加到空的 pandas 数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我想做这样的事情:
df = pd.DataFrame()
for row_ind1 in range(3):
    for row_ind2 in range(3:6):
        for col in range(6:9):
            entry = row_ind1 * row_ind2 * col
            df.loc[[row_ind1, row_ind2], col] = entry           
并退出:
     6 7 8
0 3  x x x
  4  x x x
  5  x x x
1 3  x x x
  4  x x x
  5  x x x
2 3  x x x
  4  x x x
  5  x x x
(作为奖励,获胜者可以填写答案。)
推荐答案
AMultiIndex可以预初始化,以允许loc的设置按预期工作:
# Pre-initialise a MultiIndex
df = pd.DataFrame(index=pd.MultiIndex.from_arrays([[], []]))
for row_ind1 in range(3):
    for row_ind2 in range(3, 6):
        for col in range(6, 9):
            entry = row_ind1 * row_ind2 * col
            df.loc[(row_ind1, row_ind2), col] = entry
df:
        6     7     8
0 3   0.0   0.0   0.0
  4   0.0   0.0   0.0
  5   0.0   0.0   0.0
1 3  18.0  21.0  24.0
  4  24.0  28.0  32.0
  5  30.0  35.0  40.0
2 3  36.0  42.0  48.0
  4  48.0  56.0  64.0
  5  60.0  70.0  80.0
尽管只在MultiIndex和Columns上使用broadcasted与NumPy的乘法来构建DataFrame并使用MultiIndex.from_product单独创建索引和列可能更容易:
import numpy as np
import pandas as pd
idx = pd.MultiIndex.from_product([[0, 1, 2], [3, 4, 5]]).to_frame()
cols = np.array([6, 7, 8])
df = pd.DataFrame((idx[0] * idx[1]).to_numpy()[:, None] * cols,
                  index=idx.index,
                  columns=cols)
df:
      6   7   8
0 3   0   0   0
  4   0   0   0
  5   0   0   0
1 3  18  21  24
  4  24  28  32
  5  30  35  40
2 3  36  42  48
  4  48  56  64
  5  60  70  80
这篇关于如何将多索引行追加到空的 pandas 数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:如何将多索引行追加到空的 pandas 数据帧
 
				
         
 
            
        基础教程推荐
             猜你喜欢
        
	     - IBM Watson SpechtoTextV1错误-Python 2022-09-22
- H5py:如何在HDF5组和数据集上使用key()循环 2022-09-21
- 使用pyinstaller后,Python应用程序无法运行,但未显 2022-09-21
- 使用Python访问已在运行的进程 2022-09-21
- 当按下按钮时,将动态创建的按钮信息传递给函 2022-09-21
- 在VBA中调用python代码:权限错误 2022-09-22
- GridSearchCV.Best_Score不同于CROSS_VAL_Score(GridSearchCV. 2022-09-21
- 多索引数据帧删除每个组具有最大值的行 2022-09-22
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- Socket.recv为空,但结果显示在Maya中 2022-09-21
 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
    	 
				 
				 
				 
				