1. ホーム
  2. python

[解決済み] Pandas:Seriesのデータ型をStringに変更する。

2022-03-02 22:49:29

質問

Python 2.7でPandasのver 0.12.0を使用しており、以下のようなデータフレームを持っています。

df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610],
                    'colour': ['black', 'white','white','white',
                            'black', 'black', 'white', 'white'],
                    'shape': ['round', 'triangular', 'triangular','triangular','square',
                                        'triangular','round','triangular']
                    },  columns= ['id','colour', 'shape'])

id シリーズはいくつかの整数と文字列からなる。その dtype であり、デフォルトでは object . のすべてのコンテンツを変換したいのです。 id を文字列に変換します。試しに astype(str) と表示され、以下のような出力が得られます。

df['id'].astype(str)
0    1
1    5
2    z
3    1
4    1
5    7
6    2
7    6

1) のすべての要素を変換するにはどうすればよいですか? id を文字列に変換できますか?

2) 私は最終的に id をデータフレームのインデックスに使用することができます。データフレームにStringインデックスがあると、整数インデックスに比べて処理速度が遅くなるのでしょうか?

どのように解決するのですか?

最新のプラクティスを反映した新しい回答:現在(v1.2.4)では、どちらも astype('str') また astype(str) の仕事をします。

ドキュメントにあるように Series は,以下の方法で文字列データ型に変換することができる.

df['id'] = df['id'].astype("string")

df['id'] = pandas.Series(df['id'], dtype="string")

df['id'] = pandas.Series(df['id'], dtype=pandas.StringDtype)