Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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 使用熊猫加载不同列号的csv_Python_Csv_Numpy_Pandas - Fatal编程技术网

Python 使用熊猫加载不同列号的csv

Python 使用熊猫加载不同列号的csv,python,csv,numpy,pandas,Python,Csv,Numpy,Pandas,我有一个csv文件,其中始终有两个前列,但不同文件的列数不同。csv可以如下所示: Gondi,4012,227,233,157,158,149,158 Gondi,4013,227,231,156,159,145,153 Gondu,4014,228,233,157,158,145,153 Gondu,4015,227,231,156,159,149,158 目前,我正在使用NumPy,加载此数据的代码是: import numpy as np def readfile(fname):

我有一个csv文件,其中始终有两个前列,但不同文件的列数不同。csv可以如下所示:

Gondi,4012,227,233,157,158,149,158
Gondi,4013,227,231,156,159,145,153
Gondu,4014,228,233,157,158,145,153
Gondu,4015,227,231,156,159,149,158
目前,我正在使用
NumPy
,加载此数据的代码是:

import numpy as np
def readfile(fname):
    with open(fname) as f:
       ncols = len(f.readline().split(','))
    name = np.loadtxt(fname, delimiter=',', usecols=[0],dtype=str)
    ind  = np.loadtxt(fname, delimiter=',', usecols=[1],dtype=int)
    data = np.loadtxt(fname, delimiter=',', usecols=range(2,ncols),dtype=int)
    return data,name,ind
我可以更有效地使用熊猫做同样的事情吗?

我认为您可以使用和来选择第一、第二和其他列:

import pandas as pd
import io

temp=u"""Gondi,4012,227,233,157,158,149,158
Gondi,4013,227,231,156,159,145,153
Gondu,4014,228,233,157,158,145,153
Gondu,4015,227,231,156,159,149,158"""
#after testing replace io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp), header=None)
print df

name = df.iloc[:,0]
print name
0    Gondi
1    Gondi
2    Gondu
3    Gondu
Name: 0, dtype: object

ind = df.iloc[:,1]
print ind
0    4012
1    4013
2    4014
3    4015
Name: 1, dtype: int64

data = df.iloc[:,2:]
print data
     2    3    4    5    6    7
0  227  233  157  158  149  158
1  227  231  156  159  145  153
2  228  233  157  158  145  153
3  227  231  156  159  149  158