python - 如何操纵每个索引中的值?
问题描述
我有一列数字。它有大约 60000 个索引。一些索引的值如 1.000 或 5.0 或 2323.0000 或 1.446 这些索引的正确值是 1、5、2323、1446。换句话说,我有两种情况。对于第一种情况,如果索引是带有点和该点之后的零的数值,我需要删除该点和该点之后的所有零。第二种情况是索引具有带点的数值,但点后的数字不为零。我只需要摆脱点。我将如何做到这一点?
解决方案
我认为你需要:
df = pd.DataFrame({'a':range(5)}, index=[1.0,5.0,2323.0,1.446,10.5])
print (df)
a
1.000 0
5.000 1
2323.000 2
1.446 3
10.500 4
df.index = df.index.map(lambda x: int(x) if x.is_integer() else int(x * 1000))
或者:
df.index = np.where(df.index.astype(int) == df.index,df.index, df.index * 1000).astype(int)
print (df)
a
1 0
5 1
2323 2
1446 3
10500 4
或者可能需要:
df.index = df.index.astype(str).str.replace('\.0','').str.replace('.','').astype(int)
print (df)
a
1 0
5 1
2323 2
1446 3
105 4
推荐阅读
- c# - C# OData:获取 OData 结果很慢
- php - 在子目录中使用 nginx 安装 Laravel
- xml - 如何在 XML / XSD 中定义整数范围?
- css - 在 Bootstrap 3 表单中并排设置两个输入字段的正确方法?
- powershell - 通过 cmd 批处理 USB 本地和远程端口配置
- django - 如何在 QuerySet 上使用 Django 注释添加注释?
- mysql - 错误 1005,“无法创建表 - SQLAlchemy 到 MySQL
- mongodb - mongodb 查找 match-expr 作为第二个管道步骤
- vba - 了解测试 ADO 记录集是否打开
- ios - 当应用程序处于终止/终止状态时触发推送通知