1

.astype() 関数を使用して int32 から文字列に変換しようとしています。pandas シリーズで変換を使用しようとしたときに最初にこれに気付きましたが、numpy でテストしたときに同じ動作が見られたので、numpy が根本的な原因であると想定しています。

In [0]: import numpy as np
In [1]: test = np.array([1, 22, 333, 4444])
In [2]: test.astype(str)
Out [2]: array(['1', '2', '3'],
              dtype='|S1')

完全な長さをキャプチャするために、S4 ではなく S1 にデフォルト設定されているのはなぜですか? 単純なようですが、何かが足りないのではないでしょうか? S3 (またはそれ以上) を明示的に指定すると、正常に動作します。

In [3]: test.astype('S10')
Out [3]: array(['1', '22', '333', '4444'],
              dtype='|S10')

私がオンラインで見た例に基づいて、このように指定する必要はないようです。numpy 1.6.1 がインストールされています。

4

2 に答える 2