Python使用pd.read_table更改列名

时间:2017-09-15 08:02:03

标签: python pandas dataframe

我有一个名为dat.txt的txt数据,它读取

a    b     c    d     e
99   94   93   100  100
99   88   96    99   97
100   98   81    96  100
93   88   88    99   96
100   91   72    96   78
90   78   82    75   97
75   73   88    97   89
93   84   83    68   88
87   73   60    76   84
95   82   90    62   39
76   72   43    67   78
85   75   50    34   37

我想要更改此数据的列名(即变量名)。 在,我做

dat = read.table("dat.txt",head=T)
colnames(dat)=c("var1","col2","var3","col4","var5")

显示

        var1 col2 var3 col4 var5
    1    99   94   93  100  100
    2    99   88   96   99   97
    3   100   98   81   96  100
    4    93   88   88   99   96
    5   100   91   72   96   78
    6    90   78   82   75   97
    7    75   73   88   97   89
    8    93   84   83   68   88
    9    87   73   60   76   84
    10   95   82   90   62   39
    11   76   72   43   67   78
    12   85   75   50   34   37

我想以类似的方式使用Python读取这些数据,所以我尝试

 import pandas as pd
 dat1 = pd.read_table('dat.txt')
 print(dat1)

并显示

         a     b    c    d    e 
    0    99   94   93   100  100
    1    99   88   96    99   97
    2   100   98   81    96  100
    3    93   88   88    99   96
    4   100   91   72    96   78
    5    90   78   82    75   97
    6    75   73   88    97   89
    7    93   84   83    68   88
    8    87   73   60    76   84
    9    95   82   90    62   39
    10   76   72   43    67   78
    11   85   75   50    34   37

然后我尝试

    cols = ['var1','col2','var3','col4','var5']
    dat2 = pd.read_table('dat.txt', skiprows=[0], header=None, names=cols)
    print(dat2)

显示

                            var1  col2  var3  col4  var5
    0    99   94   93   100  100   NaN   NaN   NaN   NaN
    1    99   88   96    99   97   NaN   NaN   NaN   NaN
    2   100   98   81    96  100   NaN   NaN   NaN   NaN
    3    93   88   88    99   96   NaN   NaN   NaN   NaN
    4   100   91   72    96   78   NaN   NaN   NaN   NaN
    5    90   78   82    75   97   NaN   NaN   NaN   NaN
    6    75   73   88    97   89   NaN   NaN   NaN   NaN
    7    93   84   83    68   88   NaN   NaN   NaN   NaN
    8    87   73   60    76   84   NaN   NaN   NaN   NaN
    9    95   82   90    62   39   NaN   NaN   NaN   NaN
    10   76   72   43    67   78   NaN   NaN   NaN   NaN
    11   85   75   50    34   37   NaN   NaN   NaN   NaN

0 个答案:

没有答案