我正在学习一门在线Python课程,这门课程是关于数据帧的。你知道吗
我下载了this CSV file并将其导入数据帧:
import os
import pandas as pd
os.chdir('C:/cygwin64/home/User.Name/path/to/brics.csv')
pd.read_csv( os.getcwd() + '/brics.csv' )
myBrics = pd.read_csv( 'brics.csv' )
myBrics
Unnamed: 0 country capital area population
0 BR Brazil Brasilia 8.516 200.40
1 RU Russia Moscow 17.100 143.50
2 IN India New Delhi 3.286 1252.00
3 CH China Beijing 9.597 1357.00
4 SA South Africa Pretoria 1.221 52.98
然后,我使用课程演示中给出的代码创建相同的数据帧
dict = {
"country":["Brazil", "Russia", "India", "China", "South Africa"],
"capital":["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"],
"area":[8.516, 17.10, 3.286, 9.597, 1.221],
"population":[200.4, 143.5, 1252, 1357, 52.98] }
brics = pd.DataFrame(dict)
brics
country capital area population
0 Brazil Brasilia 8.516 200.40
1 Russia Moscow 17.100 143.50
2 India New Delhi 3.286 1252.00
3 China Beijing 9.597 1357.00
4 South Africa Pretoria 1.221 52.98
除了myBrics
中的第一列之外,它们似乎是相同的。一些网络搜索显示我可以摆脱第1栏:
myBrics.drop( myBrics.columns[[0]] , axis=1 )
country capital area population
0 Brazil Brasilia 8.516 200.40
1 Russia Moscow 17.100 143.50
2 India New Delhi 3.286 1252.00
3 China Beijing 9.597 1357.00
4 South Africa Pretoria 1.221 52.98
但是,外观相同的数据帧仍然不相等:
myBrics.drop( myBrics.columns[[0]] , axis=1 ).equals( brics )
False
有人能解释一下发生了什么事吗?谢谢。你知道吗
我使用的是Spyder的Python3.7,通过Anaconda安装(由具有管理员权限的人安装)。操作系统是64位的Windows7。你知道吗
我怀疑是你专栏的数据类型。正如文件提到的:
您可以使用:
查看每列的数据类型
您依赖于浮点值返回true的相等性;有很多资源可以解释为什么它不能按预期工作。你知道吗
我建议导入numpy并对浮点数列使用isclose函数
将此添加到导入中
然后使用以下命令:
如果您想更深入地了解浮动的细节,请参见this answer
艾伦·埃尔德的回答是正确的。我运行了以下代码:
结果是
相关问题 更多 >
编程相关推荐