我有一个问题已经解决了一段时间,但无法理解。
我正在使用Python进行数据分析项目。我有这个数据集,其中包含坐标点x和y。我将数据集存储在名为df的熊猫DataFrame
中。数据集包含400行,每2列包含x和y坐标,它们是float64
对象。
对于我的计算,我需要将此DataFrame
转换为list
,我们将其称为df_list。我使用df.values.tolist()
命令执行此操作。
我还需要将相同的dataframe
转换为numpy array
,我们称之为df_numpy。我使用df.to_numpy()
命令执行此操作。
现在,我的问题是某些值无法正确转换为list
。奇怪的是,总是一个错误的坐标输入,但并不总是相同。
让我通过提供一些输出值来进行解释:
print(df.loc[0])
print(df.loc[1])
print(df.loc[2])
print(df.loc[3])
print(df.loc[4])
X 1.000000
Y 0.561865
名称:0,dtype:float64
X 0.351548
Y 0.002068
名称:1,dtype:float64
X 0.523878
Y 0.337961
名称:2,dtype:float64
X 0.948091
是0.456298
名称:3,dtype:float64
X 0.608648
Y 0.806752
名称:4,dtype:float64
print(df_numpy[0])
print(df_numpy[1])
print(df_numpy[2])
print(df_numpy[3])
print(df_numpy[4])
[1。 0.56186462]
[0.35154843 0.00206845]
[0.52387755 0.33796057]
[0.94809129 0.45629823]
[0.60864801 0.80675194]
print(df_list[0])
print(df_list[1])
print(df_list[2])
print(df_list[3])
print(df_list[4])
[1.0,0.5618646171659081]
[0.3515484263307057,0.0020684547262851357]
[0.5238775486787602,0.3379605736871545]
[1.1245393310467733,0.6538012024565103]
[0.6086480098218077,0.8067519389187792]
如您所见,list
中位置3的数字不同于DataFrame
和numpy array
中的数字。
请问为什么会发生这种情况?
谢谢。
答案 0 :(得分:0)
弃用pandas.DataFrame.values!
如果您访问pandas docs以获得.values,则会看到一个红色的大警告,上面写着:
警告:我们建议您改用DataFrame.to_numpy()。