つまりmonths
、2列のXLSXファイルがありrevenue
、CSVファイルとして保存しました。パンダを使用してcsvファイルを読み取ることにより、revenue
列がオブジェクトに変わりました。この列をfloatに変更するにはどうすればよいですか?
data = pd.DataFrame
dat['revenue']
7980.79
Nan
1000.25
17800.85
.....
Nan
2457.85
6789.33
これは変更したい列ですが、さまざまなエラーが発生しました
私は、試してみましたastype
、to_numeric
しかし、誰成功。
私が得たエラーのいくつかは次のとおりです。
文字列「798.79」を解析できません
nucsit026の回答を使用して、文字列を含むわずかに異なるdataFrameを作成します
dic = {'revenue':['7980.79',np.nan,'1000.25','17800.85','None','2457.85','6789.33']}
print(df)
print(df['revenue'].dtypes
出力:
revenue
0 7980.79
1 NaN
2 1000.25
3 17800.85
4 None
5 2457.85
6 6789.33
dtype('O')
これを試して:
df['revenue']=pd.to_numeric(data['revenue'], errors='coerce').fillna(0, downcast='infer')
nan
0に置き換えられます
出力:
0 7980.79
1 0.00
2 1000.25
3 17800.85
4 0.00
5 2457.85
6 6789.33
Name: revenue, dtype: float64
編集:
引用符が問題である場合は、共有エラーから使用できます
df['revenue']=df['revenue'].str.strip("'")
次に、上記のコードを使用してfloatに変換してみます
EDIT2
OPの列の値には次のようなスペースがありました
Month Revenue
Apr-13 16 004 258.24
May-13
Jun-13 16 469 157.71
Jul-13 19 054 861.01
Aug-13 20 021 803.71
Sep-13 21 285 537.45
Oct-13 22 193 453.80
Nov-13 21 862 298.20
Dec-13 10 053 557.64
Jan-14 17 358 063.34
Feb-14 19 469 161.04
Mar-14 22 567 078.21
Apr-14 20 401 188.64
この場合、次のコードを使用します。
df['revenue']=df['revenue'].replace(' ', '', regex=True)
その後、変換を実行します
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加