将CSV加载到Pandas MultiIndex DataFrame

Han*_*ver 26 python csv numpy pandas

我有一个719mb的CSV文件,看起来像:

from, to, dep, freq, arr, code, mode   (header row)
RGBOXFD,RGBPADTON,127,0,27,99999,2
RGBOXFD,RGBPADTON,127,0,33,99999,2
RGBOXFD,RGBRDLEY,127,0,1425,99999,2
RGBOXFD,RGBCHOLSEY,127,0,52,99999,2
RGBOXFD,RGBMDNHEAD,127,0,91,99999,2
RGBDIDCOTP,RGBPADTON,127,0,46,99999,2
RGBDIDCOTP,RGBPADTON,127,0,3,99999,2
RGBDIDCOTP,RGBCHOLSEY,127,0,61,99999,2
RGBDIDCOTP,RGBRDLEY,127,0,1430,99999,2
RGBDIDCOTP,RGBPADTON,127,0,115,99999,2
and so on... 
Run Code Online (Sandbox Code Playgroud)

我想加载到pandas DataFrame.现在我知道csv方法有一个负载:

 r = pd.DataFrame.from_csv('test_data2.csv')
Run Code Online (Sandbox Code Playgroud)

但我特别想将它作为'MultiIndex'数据框加载,其中from和to是索引:

最后得到:

                   dep, freq, arr, code, mode
RGBOXFD RGBPADTON  127     0   27  99999    2
        RGBRDLEY   127     0   33  99999    2
        RGBCHOLSEY 127     0 1425  99999    2
        RGBMDNHEAD 127     0 1525  99999    2
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办?

DSM*_*DSM 36

你可以使用pd.read_csv:

>>> df = pd.read_csv("test_data2.csv", index_col=[0,1], skipinitialspace=True)
>>> df
                       dep  freq   arr   code  mode
from       to                                      
RGBOXFD    RGBPADTON   127     0    27  99999     2
           RGBPADTON   127     0    33  99999     2
           RGBRDLEY    127     0  1425  99999     2
           RGBCHOLSEY  127     0    52  99999     2
           RGBMDNHEAD  127     0    91  99999     2
RGBDIDCOTP RGBPADTON   127     0    46  99999     2
           RGBPADTON   127     0     3  99999     2
           RGBCHOLSEY  127     0    61  99999     2
           RGBRDLEY    127     0  1430  99999     2
           RGBPADTON   127     0   115  99999     2
Run Code Online (Sandbox Code Playgroud)

在那里,我习惯于skipinitialspace=True摆脱标题行中那些恼人的空格.

  • 如果您正在寻找按列多索引,请调用:`df = pd.read_csv("data.csv", header=[0,1], index_col=0))` (4认同)