[解決済み] DataFrameの文字列、dtypeがobjectの場合
2022-07-08 18:32:16
質問
選択された列のすべての項目が文字列であるにもかかわらず、なぜPandasは私がオブジェクトを持っていると言うのでしょうか - たとえ明示的な変換の後でも。
これは私のDataFrameです。
<class 'pandas.core.frame.DataFrame'>
Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id 56992 non-null values
attr1 56992 non-null values
attr2 56992 non-null values
attr3 56992 non-null values
attr4 56992 non-null values
attr5 56992 non-null values
attr6 56992 non-null values
dtypes: int64(2), object(5)
そのうち5つは
dtype object
. 私はそれらのオブジェクトを明示的に文字列に変換しています。
for c in df.columns:
if df[c].dtype == object:
print "convert ", df[c].name, " to string"
df[c] = df[c].astype(str)
では
df["attr2"]
にはまだ
dtype object
を持つが
type(df["attr2"].ix[0]
を明らかにする
str
であり、これは正しい。
Pandasは
int64
と
float64
そして
object
. がない場合、どのようなロジックになるのでしょうか?
dtype str
? なぜ
str
でカバー
object
?
どのように解決するのですか?
この
dtype
オブジェクトはNumPyから来たもので、これは
ndarray
. の中のすべての要素は
ndarray
の各要素は同じバイト数でなければなりません。例えば
int64
と
float64
のように、8バイトである。しかし、文字列の場合、文字列の長さは一定ではありません。そこで、文字列のバイト数を保存する代わりに
ndarray
に直接保存するのではなく、Pandasはオブジェクト
ndarray
で、これはオブジェクトへのポインタを保存します。
dtype
のような
ndarray
はオブジェクトです。
以下はその例である。
- int64配列は、4つのint64値を含みます。
- object配列には、3つの文字列オブジェクトへの4つのポインタが含まれます。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] JavaScriptで値がオブジェクトであるかどうかを確認する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み】Pandas DataFrameのカラムヘッダからリストを取得する。
-
[解決済み] IPythonの終了確認を無効にする
-
[解決済み] 標準のjsonモジュールでfloatをフォーマットする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pandas データフレーム内のすべての列のd型をチェックする方法は?
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] ヒストグラム Matplotlib
-
[解決済み] Matplotlibのレジェンドが動作しない
-
[解決済み] 標準のjsonモジュールでfloatをフォーマットする
-
[解決済み] Django の Forms のテストはどのように書くべきですか?
-
[解決済み] pandas DataFrameへのメタ情報/メタデータの追加
-
[解決済み] readonlyプロパティをmockでモックするには?
-
[解決済み] Pythonで文字列のb-プレフィックスを取り除くには?