python - Python pandas:使用 .values 属性对 Series 进行子集时的问题
问题描述
我遇到了 Pandas 系列的问题:我创建了一个包含一些值的数组。为了测试目的,我试图确保系列中某些值的存在,所以我将其子集如下:
A = np.arange(start=-10, stop=10, step=0.1)
Aseries = pd.Series(A)
Aseries[Aseries.values == 9]
这将返回一个空数组。但我只需要更改步长(从 0.1 到 1)然后它就可以工作了......我已经仔细检查了 Series 是否真的包含我正在寻找的值(对于两个步长值......)
这是我更改步骤时的代码(以输出为证明)
#Generating an array conaining 200 values from -10 to 10 with a step of 0.1
A = np.arange(start=-10, stop=10, step=0.1)
Aseries = pd.Series(A)
Aseries[Aseries.values == 9]
#Generating an array conaining 20 values from -10 to 10 with a step of 0.1
B = np.arange(start=-10, stop=10, step=1)
Bseries = pd.Series(B)
print("'Aseries' having the value 9:")
print(Aseries[Aseries.values == 9])
print("'Bseries' having the value 9:")
print(Bseries[Bseries.values == 9])
输出:
'Aseries' having the value 9:
Series([], dtype: float64)
'Bseries' having the value 9:
19 9
dtype: int32
知道这里发生了什么吗?提前致谢!
[编辑]:由于某种原因,我无法在此线程中添加任何其他帖子,所以我将添加我在这里找到的解决方案:就像 @Quang Hoang 和 @Kim Rop 由非整数步长值解释的,它并没有真正返回什么它应该。所以之后:
Aseries = pd.Series(A)
我只是添加了一个舍入指令,只在数组中的值之后保留一位小数,并用类似的东西调整了我的子集操作:
Aseries[(Aseries.values < 9.1) &(Aseries.values < 9.1)]
我不再有这个问题了......谢谢@Quang Hoang 和@Kim Rop
解决方案
推荐阅读
- python - 我应该如何处理 Django Rest Framework 唯一字段超链接关系?
- javascript - 来自 parsley.js 的翻译会引发错误并且无法正常工作
- python - 从 .csv 文件中找到值时如何停止 For 循环
- java - 使用 spring boot parent 2.1.4.RELEASE 移动到 Greenwich.RELEASE 后启动配置服务器时出错
- excel - 查找一行中第一次出现的值并返回它旁边的单元格
- json - 如何将 JSON 文件导入 Angular 库?
- groovy - Groovy MarkupTemplateEngine 中的元素
- azure - 从映像创建 VM 时,Set-AZVMOperatingSystem 无法设置 TimeZone
- c# - 使用静态函数的sqlite中的线程并发
- ios - 迅速。CoreGraphics、addRects 和 fillPath 只填充 1 个矩形