2017-04-06 75 views
1

我是Python新手,正在尝试Pandas库。这里是读一个CSV文件没有头的代码:Python Pandas'str'对象不可调用

import pandas as pnd 
import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 

pnd.set_option('max_columns', 50) 
mpl.rcParams['lines.linewidth'] = 2 

headers = ['OrderId', 'OrderDate', 'UserId', 'TotalCharges'] 
dtypes = {'OrderId': 'int', 'OrderDate': 'str', 'UserId': 'int', 'TotalCharges':'float'} 
parse_dates = ['OrderDate'] 
df = pnd.read_csv('Raw_flight_data.csv', sep='\t', header=None, 
        names=headers,converters=dtypes,parse_dates=parse_dates) 

此代码给我一个错误: -

runfile('C:/Users/rohan.arora/Desktop/Python/example.py', wdir='C:/Users/rohan.arora/Desktop/Python') 
Traceback (most recent call last): 

    File "<ipython-input-47-43fc22883149>", line 1, in <module> 
    runfile('C:/Users/rohan.arora/Desktop/Python/example.py', wdir='C:/Users/rohan.arora/Desktop/Python') 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile 
    execfile(filename, namespace) 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile 
    exec(compile(scripttext, filename, 'exec'), glob, loc) 

    File "C:/Users/rohan.arora/Desktop/Python/example.py", line 13, in <module> 
    names=headers,converters=dtypes,parse_dates=parse_dates) 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 646, in parser_f 
    return _read(filepath_or_buffer, kwds) 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 401, in _read 
    data = parser.read() 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 939, in read 
    ret = self._engine.read(nrows) 

    File "C:\Users\rohan.arora\Anaconda2\lib\site-packages\pandas\io\parsers.py", line 1508, in read 
    data = self._reader.read(nrows) 

    File "pandas\parser.pyx", line 848, in pandas.parser.TextReader.read (pandas\parser.c:10415) 

    File "pandas\parser.pyx", line 870, in pandas.parser.TextReader._read_low_memory (pandas\parser.c:10691) 

    File "pandas\parser.pyx", line 947, in pandas.parser.TextReader._read_rows (pandas\parser.c:11728) 

    File "pandas\parser.pyx", line 1044, in pandas.parser.TextReader._convert_column_data (pandas\parser.c:13129) 

    File "pandas\parser.pyx", line 2115, in pandas.parser._apply_converter (pandas\parser.c:28771) 

TypeError: 'str' object is not callable 

我使用蟒蛇Spyder的3.1.2和运行的Python 2.7.13。

+0

我想你想:'dtypes = { '的OrderId':INT“ OrderDate':str,'UserId':int,'TotalCharges':float}',字典值必须是类型不是str – EdChum

回答

1

我认为你需要为types删除'typesstring表示:

dtypes = {'OrderId': 'int', 'OrderDate': 'str', 'UserId': 'int', 'TotalCharges':'float'} 

到:

dtypes = {'OrderId': int, 'OrderDate': str, 'UserId': int, 'TotalCharges': float} 
+0

谢谢! 。有效。干杯! –