我有一个 !cat 的 csv 文件,看起来像这样
,City,region,Res_Comm,mkt_type,Quradate,National_exp,Alabama_exp,Sales_exp,Inventory_exp,Price_exp,Credit_exp
0,Dothan,South_Central-Montgomery-Auburn-Wiregrass-Dothan,Residential,Rural,2010-01-15,2,2,3,2,3,3
1,Dothan,South_Central-Montgomery-Auburn-Wiregrass-Dothan,Residential,Suburban_Urban,2010-07-15,2,2,3,2,2,2
2,Dothan,South_Central-Montgomery-Auburn-Wiregrass-Dothan,Residential,Suburban_Urban,2011-01-15,2,2,2,2,2,2
当我通过 read_csv 读取它时,我得到一个数据框,所有 ..._exp 字段都是我需要进行基本数学运算的单位数字(当我将 read-table 与文件的另一个变体一起使用时,它工作得很好)
df = pd.io.parsers.read_csv('/home/tom/Dropbox/Projects/annonallanswerswithmaster1012013.csv',index_col=0,parse_dates=['Quradate'])
但是当我去做任何数学运算时,我会收到一个类型错误,指示该列是字符串,例如:
df['Credit_exp'] = df['Credit_exp']/2
TypeError: unsupported operand type(s) for /: 'str' and 'int'
我看不到如何将其转换为 int?我尝试在文件读取选项中指定像 ,dtype={'Credit_exp': np.int32, ... 这样的字段类型,但它不喜欢那样,我尝试进行像 df['Credit_exp'] = int 这样的类型转换(df['Credit_exp']) 这只是给了我:
TypeError: only length-1 arrays can be converted to Python scalars
所以有一些明显的东西我错过了......