python - 如何使用十进制数/数据与 python 3 检查相关性

标签 python python-3.x pandas numpy decimal

感谢您的宝贵时间。

我正在编写一些代码来检查多组数据之间的相关性。当我使用原始数据时效果很好(老实说我当时不确定它是哪种格式),但是在我使用 Decimal 模块通过一些方程运行数据后,数据集在测试时不会显示用于相关性。

我觉得自己真的很愚蠢而且很陌生,哈哈,我相信这是一个非常容易解决的问题。

这是我写的一个小程序来证明我的意思。

from decimal import Decimal
import numpy as np
import pandas as pd

a = [Decimal(2.3), Decimal(1.5), Decimal(5.7), Decimal(4.6), Decimal(5.5), Decimal(1.5)]
b = [Decimal(2.1), Decimal(1.2), Decimal(5.3), Decimal(4.4), Decimal(5.3), Decimal(1.7)]

h = [2.3,1.5,5.7,4.6,5.5,1.5]
j = [2.1,1.2,5.3,4.4,5.3,1.7]

corr_data1 = pd.DataFrame({'A': a, 'B': b}) 

corr_data2 = corr_data1.corr()
print(corr_data2)

corr_data3 = pd.DataFrame({'H': h, 'J': j})

corr_data4 = corr_data3.corr()
print(corr_data4)

列表 A 和 B 以及 H 和 F 的数据完全相同,唯一的区别是 A 和 B 是十进制格式的数字,而 H 和 F 不是。

程序运行时,A&B返回:

Empty DataFrame
Columns: []
Index: []

H & J 返回:

          H         J
H  1.000000  0.995657
J  0.995657  1.000000

如何制作它以便在通过我的方程式运行数据后可以利用这些数据?

很抱歉提出这个愚蠢的问题,感谢您抽出宝贵的时间。希望你们一切都好,节日快乐!

最佳答案

Pandas 无法将数据识别为数值。以下是将数据转换为 float 的方法。

corr_data1.astype(float).corr()

#           A         B
# A  1.000000  0.995657
# B  0.995657  1.000000

这也应该有效,但实际上无效。

pd.to_numeric(corr_data1['A'], errors='coerce')

# 0   NaN
# 1   NaN
# 2   NaN
# 3   NaN
# 4   NaN
# 5   NaN

关于python - 如何使用十进制数/数据与 python 3 检查相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205001/

相关文章:

python - 如何在Django中内连接4个表?

Python 脚本未创建足够的输出行

python - Python 何时在读取文件时解码字节字符串?

python - 在 python 中,summary (dplyr) 函数类似

python elasticsearch-dsl父子关系

Python 在数组中插入缺失的元素

python - pipfile 可编辑包位置

python - 在 Python 中,我无法使用 PIL 正确打开一些 png 图像

python - 24 小时内的桶时间,并对每个桶的金额进行求和

python - 基于时间戳间隔的求和频率