1

!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 フィールドはすべて、基本的な計算を行う必要がある 1 桁の数字です (ファイルの別のバリアントで 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

だから、私が見逃している明らかなものがあります...

4

1 に答える 1