我正在使用read_sql_table()从sql到python获取数据,其中导入后的数据如下:
.NativeName {
vertical-align: top;
font-family: 'Open Sans', sans-serif;
font-size: 16px;
line-height: 28px;
}
h2,
p {
margin: 0;
padding: 0;
}
.row {
display: flex;
align-items: flex-end;
}
当我将此表读入数据框时,它已转换为float。由于我需要将这些列作为整数,因此我使用:
<div className="NativeName">
<div class="row">
<h2>Native Name:</h2>
<p>{country.nativeName}</p>
</div>
<div class="row">
<h2>Population:</h2>
<p>{country.population}</p>
</div>
<div class="row">
<h2>Population:</h2>
<p>{country.population}</p>
</div>
<div class="row">
<h2>Region:</h2>
<p>{country.region}</p>
</div>
<div class="row">
<h2>Sub Region:</h2>
<p> {country.subregion}</p>
</div>
<div class="row">
<h2>Capital:</h2>
<p> {country.capital}</p>
</div>
</div>
。 (由于存在Nan值,所以使用fillna(0))
但是我也想将所有零(由于fillna(0))转换回column1 column2 column3
1.0 868.0 76225.0
0.0 2767.0 2763.0
。
如果我尝试df['column2']=df['column2'].fillna(0).astype('int')
,则不仅会转换NaN
,还会转换df['column2'].replace(0, np.nan, inplace=True)
。
有关如何在不将zeroes to Nan
更改为0的情况下使用read_sql_table将浮点数转换为整数的任何帮助。
谢谢!
答案 0 :(得分:1)
从pandas版本0.24.0
开始,提供了Int64
数据类型,该数据类型可用于将NaN
s存储在整数数组中。
因此,您可以使用
df['column2'] = df['column2'].astype('Int64')
这会将所有float
的值转换为int
,同时保持NaN
不变。
参考: