python - python - 将浮点数转换为熊猫列中的整数
问题描述
我有一个熊猫数据框:
df3 = pd.DataFrame({
'T': [11.0,22.0,11.23,20.03],
'v2': [11.0,13.0,55.1,33.0],
'v3' : [112.1,2.0,2.1,366.0],
'v4': [np.nan, "blue", 1.0, 2.0]
})
T v2 v3 v4
0 11.00 11.0 112.1 NaN
1 22.00 13.0 2.0 blue
2 11.23 55.1 2.1 1.0
3 20.03 33.0 366.0 2.0
我必须有:
T v2 v3 v4
0 11 11.0 112.1 NaN
1 22 13.0 2.0 blue
2 11.23 55.1 2.1 1.0
3 20.03 33.0 366.0 2.0
所以我必须仅在“T”上将浮点数转换为整数。
解决方案
这是可能的,但有点hack,因为有必要转换为object
:
df3['T'] = np.array([int(x) if int(x) == x else x for x in df3['T']], dtype=object)
print (df3)
T v2 v3 v4
0 11 11.0 112.1 NaN
1 22 13.0 2.0 blue
2 11.23 55.1 2.1 1
3 20.03 33.0 366.0 2
print (df3['T'].tolist())
[11, 22, 11.23, 20.03]
如果可能缺少值:
df3 = pd.DataFrame({
'T': [11.0,22.0,11.23,np.nan],
'v2': [11.0,13.0,55.1,33.0],
'v3' : [112.1,2.0,2.1,366.0],
'v4': [np.nan, "blue", 1.0, 2.0]
})
df3['T'] = np.array([int(x) if x % 1 == 0 else x for x in df3['T']], dtype=object)
print (df3)
T v2 v3 v4
0 11 11.0 112.1 NaN
1 22 13.0 2.0 blue
2 11.23 55.1 2.1 1
3 NaN 33.0 366.0 2
print (df3['T'].tolist())
[11, 22, 11.23, nan]
推荐阅读
- mysql - Docker Compose 中的 Mysql 没有使用环境变量
- python-3.x - 从不同进程导入 Tensorflow 2.0 gpu
- jquery-select2 - 在按钮单击时设置 ng-select2 的值
- c++ - 如何在给定时钟偏移的情况下正确获取时间
- javascript - html中的粘性图像占用标题中的空间
- makefile - 如何从标准输入读取到生成文件变量
- java - 如何为另一个构造函数的类中的类创建字段数组引用
- python - 从列创建列表,保留重复项
- javascript - 如何从字符串中找到 EJS 标签变量名?
- javascript - 函数内的返回语句返回未定义