pandas - df.index を float64 から unicode または文字列に変更する
質問
データフレームのインデックス(行)をfloat64から文字列またはunicodeに変更したいのですが、可能でしょうか?
これでうまくいくと思ったのですが、どうやらそうではないようです。
#check type
type(df.index)
'pandas.core.index.Float64Index'
#change type to unicode
if not isinstance(df.index, unicode):
df.index = df.index.astype(unicode)
エラーメッセージを表示します。
TypeError: Setting <class 'pandas.core.index.Float64Index'> dtype to anything other than float64 or object is not supported
どのように解決するのですか?
そのようにすることができます。
# for Python 2
df.index = df.index.map(unicode)
# for Python 3 (the unicode type does not exist and is replaced by str)
df.index = df.index.map(str)
なぜintからfloatに変換するときと違う処理をするかというと、それはnumpy(pandasのベースとなっているライブラリ)の特殊性です。
numpyの配列はすべて d型 を持ちますが、これは基本的に マシン の型であり、その要素の : そのように numpyが直接ネイティブな型を扱うのは このように、numpyはPythonのオブジェクトではなく、ネイティブの型を直接扱うので、非常に高速であることが説明できます。つまり、int64からfloat64に型を変更する場合、numpyはC言語のコードで各要素をキャストします。
また、特殊なdtypeとして: オブジェクト という特別な型もあり、これは基本的に Python オブジェクトへのポインタを提供します。
文字列が必要な場合は、このように
オブジェクトを使用しなければなりません。
を使わなければなりません。しかし
.astype(object)
を使っても、探している答えは得られません。
オブジェクト
を持つインデックスを作成し、その中にPythonのfloatオブジェクトを入れます。
ここでは、mapを使用して、適切な関数でインデックスを文字列に変換します。numpyは文字列オブジェクトを取得し、インデックスに オブジェクト を持たなければならないことを理解します。なぜなら、それが文字列に対応できる唯一のデータ型だからです。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み】文字列をdatetimeに変換する
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み】pandasでカラムの種類を変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】NameError: グローバル名 'unicode' が定義されていない - Python 3 の場合
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて