質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

4回答

4552閲覧

Pandasデータフレームで、カンマ区切りの数値を全て普通の数字にしたい

_hh

総合スコア79

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2019/08/21 20:53

Pandasのデータフレームで、数値が入った2列のデータフレームにクラスタリングを実施したく考えております。しかし、数値が全て1000単位でカンマが入っているためか、sklearnのkMeansでエラーが出てしまいます。そこで、このデータフレーム内のカンマ区切りの数値を一括で普通の数値にしたく考えております。以下の様にしたところ、エラーが出てしまいます。

Python3

1df3.dropna(inplace=True) 2df3.apply(lambda x: x.str.replace(',','')).astype(np.int) 3

【エラー】invalid literal for int() with base 10: '0.00'

原因と対策につき、ご教示いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

自己解決

皆様大変有難うございます。残念ながら、いずれの方法でも改善しませんでした。Excelで元データを開き、手作業で全ての該当箇所を整形したところ、うまくいきました。有難うございました。

投稿2019/08/22 01:31

_hh

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

astype() の代わりに pandas.to_numeric()をつかう方法

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_numeric.html

Python

1df3.apply(lambda d: pd.to_numeric(d.str.replace(',',''), downcast='integer'))

floatを経由してintにする方法

Python

1df3.apply(lambda d: d.str.replace(',','')).astype('float').astype('int')

投稿2019/08/21 23:47

magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

試していないですが、replaceしないでastype(np.int)だけでいけませんか?

投稿2019/08/21 22:19

pea

総合スコア419

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一度、文字列をfloat型に変換してからint型にしてください。

投稿2019/08/21 22:18

meg_

総合スコア10577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問