日々精進

新しく学んだことを書き留めていきます

DataFrameにSeriesをappendするとintがfloatになる

df = DataFrame()
df = df.append(Series({"a": 1}))

のような感じでappendすると、Seriesのa列はint型なのに、append後のdfのa列はfloat型になっている。。

以下によると、DataFrameインスタンスを生成する時に、列を定義してそのdtypeをintにすればいいらしいが、 Seriesを生成するところとDataFrameを生成するところで二重に列を定義しないといけないのがいやだ。。

stackoverflow.com

なので以下のようにSeriesの配列を作ってそれをDataFrameに変換することで対応した。

s = []
s.append(Series({"a": 1})
df = DataFrame(s)