はなぜパンダは、コードのこの部分でのfloat64に私のnumpyののfloat32を強制ん:それはバグであればパンダはなぜ私のnumpy float32をfloat64に強制しますか?
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame([[1, 2, 'a'], [3, 4, 'b']], dtype=np.float32)
>>> A = df.ix[:, 0:1].values
>>> df.ix[:, 0:1] = A
>>> df[0].dtype
dtype('float64')
行動はその不思議私にはとても奇妙に思えます。私はPandasバージョン0.17.1(アップデートされたPyPIバージョン)を使用していますが、最近対処されたバグを強制的に修正していることに注意してください。https://github.com/pydata/pandas/issues/11847を参照してください。私は更新されたGitHubマスターでコードの一部を試していません。
パンダのバグや誤解がありますか?それが機能の場合は、どうすれば回避できますか?
(強制変換の問題は、私は最近、パンダの割り当てのパフォーマンスについて尋ねた質問にも関する:Assignment of Pandas DataFrame with float32 and float64 slow)
これは奇妙かもしれませんが、numpyと一貫しています。 Numpyは自動的に整数もnumpy.float64型に変換します。 Pandasは中核となるので、この機能は期待されているIMOです(あなたのケースでは確かに理想的ではありませんが)。 – Benji
しかし、 'pandas'は 'dtype = object'を使う傾向があり、普通のnumpyよりも使いやすいです。混合型を処理するときに柔軟性が増します。文字列は任意の長さでも、列同士でも混合することもできますが、柔軟性には計算コストとメモリコストが伴います。 – hpaulj