astype()不会更改浮点数

时间:2018-12-19 10:41:11

标签: python pandas

即使这看起来真的很简单,也让我发疯。为什么.astype(int)不将浮点数更改为int?谢谢

df_new = pd.crosstab(df["date"], df["place"]).reset_index()
places = ['cityA', "cityB", "cityC"]
df_new[places] = df_new[places].fillna(0).astype(int)
sums = df_new.select_dtypes(pd.np.number).sum().rename('total')
df_new = df_new.append(sums)

print(df_new)

输出:

place      date          cityA    cityB       cityC
0       2008-01-01        0.0        0.0       51.0
1       2009-06-01        0.0      618.0        0.0
2       2015-07-01      549.0        0.0        0.0
3       2016-01-01       41.0        0.0        0.0
4       2016-04-01       62.0        0.0        0.0
5       2017-01-01      800.0        0.0        0.0
6       2018-07-01       69.0        0.0        0.0
total          NaT     1521.0      618.0       51.0

1 个答案:

答案 0 :(得分:0)

如果有NA(在熊猫中为浮点数),则其他值也将为浮点数。参见here