如何使用带有python 3的十进制数字/数据检查相关性

Pyt*_*ewb 11 python numpy decimal python-3.x pandas

感谢您的时间.

我正在编写一些代码来检查多组数据之间的相关性.当我使用原始数据时(我真的不确定它在那时的格式),它工作得很好,但是在使用Decimal模块通过某些方程式运行数据之后,数据集在测试时不会显示用于相关

我觉得非常愚蠢和新lol,我相信这是一个非常容易解决的问题.

这是我写的一个小程序来演示我的意思.

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)
Run Code Online (Sandbox Code Playgroud)

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

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

Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)

和H&J回报:

          H         J
H  1.000000  0.995657
J  0.995657  1.000000
Run Code Online (Sandbox Code Playgroud)

我怎么做到这样我可以在运行我的方程后使用数据?

抱歉这个愚蠢的问题,谢谢你的时间.我希望你们一切顺利,节日快乐!

Rom*_*ain 4

Pandas 不将数据识别为数值。以下是如何将数据转换为浮点数。

corr_data1.astype(float).corr()

#           A         B
# A  1.000000  0.995657
# B  0.995657  1.000000
Run Code Online (Sandbox Code Playgroud)

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

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

# 0   NaN
# 1   NaN
# 2   NaN
# 3   NaN
# 4   NaN
# 5   NaN
Run Code Online (Sandbox Code Playgroud)