我正在研究这个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/