Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pandas对多行进行索引_Python_Python 3.x_Pandas_Dataframe_Multi Index - Fatal编程技术网

Python 如何使用pandas对多行进行索引

Python 如何使用pandas对多行进行索引,python,python-3.x,pandas,dataframe,multi-index,Python,Python 3.x,Pandas,Dataframe,Multi Index,我不熟悉pandas,每当我实现代码时,第一个索引都会为每一行重复 我尝试的是: pg、ag、inc是阵列 cases=['a1','a2','a3'] data={'RED':rg,'GREEN':gg,'BLUE':bb} stat_index=['HELO','HERE' ] df=pd.DataFrame(data,pd.MultiIndex.from_product([cases,stat_index]),['RED','GREEN','BLUE']) df.to_csv("OUT.C

我不熟悉pandas,每当我实现代码时,第一个索引都会为每一行重复

我尝试的是:

pg、ag、inc是阵列

cases=['a1','a2','a3']
data={'RED':rg,'GREEN':gg,'BLUE':bb}
stat_index=['HELO','HERE' ]
df=pd.DataFrame(data,pd.MultiIndex.from_product([cases,stat_index]),['RED','GREEN','BLUE'])
df.to_csv("OUT.CSV")
我得到的是:

             RED         GREEN       BLUE
a1  HELO    304.907     286.074     12.498
a1  HERE    508.670     509.784     94.550
a2  HELO    448.974     509.406     56.466
a2  HERE    764.727     432.084     43.462
a3  HELO    412.539     602.001     10.849
a3  HERE    321.9       603.888     78.847
我真正想要的是:

             RED         GREEN       BLUE
a1  HELO    304.907     286.074     12.498
    HERE    508.670     509.784     94.550
a2  HELO    448.974     509.406     56.466
    HERE    764.727     432.084     43.462
a3  HELO    412.539     602.001     10.849
    HERE    321.9       603.888     78.847

不要这样做,除非你真的需要它

这是意料之中的,因为如果在第一级重复向文件写入
MulitIndex
。如果显示带有数据帧的多索引,则默认情况下仅不显示。但如果将
multi_sparse
更改为
False
,则可以检查真实数据:

with pd.option_context('display.multi_sparse', False):
    print (df)
             RED    GREEN    BLUE
a1 HELO  304.907  286.074  12.498
a1 HERE  508.670  509.784  94.550
a2 HELO  448.974  509.406  56.466
a2 HERE  764.727  432.084  43.462
a3 HELO  412.539  602.001  10.849
a3 HERE  321.900  603.888  78.847
主要原因是兼容性,如果在
MulitIndex
中使用带有空格的
read\u csv
,则需要进行预处理

但有可能:

a = df.index.get_level_values(0)
df.index = pd.MultiIndex.from_arrays([a.where(a.duplicated(), ''),
                                      df.index.get_level_values(1)])

with pd.option_context('display.multi_sparse', False):
    print (df)
             RED    GREEN    BLUE
   HELO  304.907  286.074  12.498
a1 HERE  508.670  509.784  94.550
   HELO  448.974  509.406  56.466
a2 HERE  764.727  432.084  43.462
   HELO  412.539  602.001  10.849
a3 HERE  321.900  603.888  78.847

我认为他希望输出为csv。例如,df表示为csv。@IMCoins是的,我想将其作为输出写入csv exaclty