python - 如果列包含 NaN,如何将其转换为 int?

标签 python pandas integer nan

我正在研究这个efw数据框:

2   Year    ISO_Code    Countries   INDEX   Rank    Quartile
3   2016    ALB         Albania     7.54    34      1
4   2016    DZA         Algeria     4.99    NaN     4
5   2016    AGO         Angola      5.17    155     4
6   2016    ARG         Argentina   4.84    160     NaN
7   2016    ARM         Armenia     7.57    NaN     1
8   2016    AUS         Australia   7.98    10      1
9   2016    AUT         Austria     7.58    27      NaN

假设我想转换 Rank 中的所有值和Quartile如果不是NaN,则将列转换为整数。我已经尝试过efw[["Year", "Rank", "Quartile"]].astype(int)但不断收到此错误:ValueError: cannot convert float NaN to integer

有没有办法告诉Python“跳过”NaN值,仅将其他值转换为 int

最佳答案

您可以将它们转换为对象

efw[["Year", "Rank", "Quartile"]].astype(object)
Out[58]: 
   Year Rank Quartile
0  2016   34        1
1  2016  NaN        4
2  2016  155        4
3  2016  160      NaN
4  2016  NaN        1
5  2016   10        1
6  2016   27      NaN

#efw[["Year", "Rank", "Quartile"]]=efw[["Year", "Rank", "Quartile"]].astype(object)

关于python - 如果列包含 NaN,如何将其转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884367/

相关文章:

python - 将字符串列表 [ '3' , '1' , '2' ] 转换为排序整数列表 [1, 2, 3]

ruby - 找到正则表达式的实例,转换成整数,做数学运算并在同一个地方替换?

Python DNS服务器IP地址查询

python - 如何让 android 模拟器与本地主机对话?

python - 如何从 python 脚本安装 npm 包?

python - pandas groupby - 自定义函数

python - 有没有办法查看 python array.array()?

python - 合并 pandas.DataFrame 上的每两列

python - drop_duplicates - ValueError : keep must be either "first", "last"或 False

xml - 如何在 XML 中显示 Activity 中的整数?