Python并从excel文件导入浮点数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python并从excel文件导入浮点数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1924字,纯文字阅读大概需要3分钟。
内容图文
![Python并从excel文件导入浮点数](/upload/InfoBanner/zyjiaocheng/796/ae0832800e484bb99ca68d6b945b76dd.jpg)
所以我有一个看起来像这样的excel文件
Name R s l2 max_amplitude ref_amplitude
R_0.3_s_0.5_l2_0.1 0.3 0.5 0.1 1.45131445 1.45131445
R_0.3_s_0.5_l2_0.6 0.3 0.5 0.6 3.52145743 3.52145743
...
R_1.1_s_2.0_l2_1.6 1.1 2.0 1.6 5.07415199 5.07415199
R_1.1_s_2.0_l2_2.1 1.1 2.0 2.1 5.78820419 5.78820419
R_1.1_s_2.0_l2_2.6 1.1 2.0 2.6 5.84488964 5.84488964
R_1.1_s_2.0_l2_3.1 1.1 2.0 3.1 6.35387516 6.35387516
使用pandas模块我将数据导入数据框
import pandas as pd
df = pd.read_excel("output_var.xlsx", header=0)
一切似乎都没问题:
df
在命令行中生成:
R s l2 max_amplitude ref_amplitude
0 0.3 0.5 0.1 1.451314 1.451314
1 0.3 0.5 0.6 3.521457 3.521457
2 0.3 0.5 1.1 4.770226 4.770226
...
207 1.1 2.0 2.1 5.788204 5.788204
208 1.1 2.0 2.6 5.844890 5.844890
209 1.1 2.0 3.1 6.353875 6.353875
[210 rows x 5 columns]
现在我需要根据R的值进行一些计算,所以我需要对数组进行切片. R列包含5个不同的值:0.3,0.5,0.7,0.9和1.1.这5个值中的每一个都有42行. (5×42 = 210)
要从“R”中删除重复项,我试试
set(df.R)
返回:
{0.29999999999999999,
0.5,
0.69999999999999996,
0.89999999999999991,
0.90000000000000002,
1.1000000000000001}
除了代表0.3为0.29999等之外,R还有6个(而不是5个)不同的值.有时0.9的接缝被解释为0.89999999999999991,有时为0.90000000000000002
这可以(部分)解决:
set(round(df.R,1))
其中(至少)返回5个值:
{0.29999999999999999,
0.5,
0.69999999999999996,
0.90000000000000002,
1.1000000000000001}
但现在我来到危险的地方.如果我想根据已知的R值(0.3,0.5,0.7,0.9和1.1)进行切片
len(df[df.R==0.3])
回报
42
和
len(df[df.R==0.9])
回报
41
一个值被Python删除! (记住,5个R中每个都有42行,给出文件中210行的总数).
如何处理这个问题?
解决方法:
不要检查浮动是否相等.浮点运算存在一些问题(例如,检查here).
相反,检查closeness(非常接近):
import numpy as np
len(df[np.isclose(df.R, 0.9)])
通常,如果你不将系列转换为集合,pandas会处理它.所以如果你想删除重复项,我建议使用pandas方法:
df.drop_duplicates('R')
内容总结
以上是互联网集市为您收集整理的Python并从excel文件导入浮点数全部内容,希望文章能够帮你解决Python并从excel文件导入浮点数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。