Pandas 2.7でPython '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
を使用します。データフレームに文字列インデックスを使用すると、整数インデックスを使用する場合と比べて速度が低下しますか?
str
を使用して、idのすべての要素をapply
に変換できます。
df.id.apply(str)
0 123
1 512
2 zhub1
3 12354.3
4 129
5 753
6 295
7 610
OPによる編集:
この問題はPythonバージョン(2.7。)に関連していたと思いますが、これはうまくいきました。
df['id'].astype(basestring)
0 123
1 512
2 zhub1
3 12354.3
4 129
5 753
6 295
7 610
Name: id, dtype: object
このように割り当てる必要があります:-
df['id']= df['id'].astype(str)
個人的には上記のどれも私にとってはうまくいきませんでした。何をしましたか:
new_str = [str(x) for x in old_obj][0]