python - 尝试使用 read_csv 读取时,我的列向左移动
问题描述
我有一个包含 6 列的数据集。但是,当我尝试使用 read_csv 读取它时,与列索引关联的值向左移动 2 列。这是我正在使用的数据集的示例;
time alpha abeta e2e rg rg2
0.000000 0.402192 3.661472 0.599572 0.606992 0.636918
1.000000 0.411551 3.697878 0.580192 0.604391 0.624746
2.000000 0.354966 3.408603 0.704422 0.622932 0.653885
3.000000 0.359647 3.473973 0.681276 0.624507 0.656729
4.000000 0.359812 3.614721 0.619767 0.619774 0.647542
不用担心标题不匹配,我用记事本打开了文件。但是,当我尝试使用代码读取文件时
d=pd.read_csv("C:/Users/Casper/Downloads/data.xvg" ,sep=' ')
d.head()
print(d)
我得到这个输出;
Unnamed: 0 Unnamed: 1 time ... e2e rg rg2
0 0.0 0.402192 3.661472 ... 0.636918 NaN NaN
1 1.0 0.411551 3.697878 ... 0.624746 NaN NaN
2 2.0 0.354966 3.408603 ... 0.653885 NaN NaN
3 3.0 0.359647 3.473973 ... 0.656729 NaN NaN
4 4.0 0.359812 3.614721 ... 0.647542 NaN NaN
如您所见,列向左移动了 2,因此现在有 8 列,我知道这是不正确的。它只是突然创建新列。
当我尝试明确给出列标题时,像这样
d=pd.read_csv("C:/Users/Casper/Downloads/data.xvg" ,sep=' ',names=['t','Alpha','abeta','e2e','rg','rg2'])
d.head()
print(d)
我明白了
t Alpha abeta e2e rg rg2
NaN NaN time alpha abeta e2e rg rg2
0.0 0.402192 3.661472 0.599572 0.606992 0.636918 NaN NaN
1.0 0.411551 3.697878 0.580192 0.604391 0.624746 NaN NaN
2.0 0.354966 3.408603 0.704422 0.622932 0.653885 NaN NaN
3.0 0.359647 3.473973 0.681276 0.624507 0.656729 NaN NaN
现在有正确的列数,但主要问题仍然存在。这些列似乎无缘无故地向左移动,我看到完全相同的代码在我眼前正常工作。我是一个初学者,所以我完全不知道什么可能导致这个或如何解决这个问题,考虑到它确实可以在另一台具有相同模块和所有内容的计算机上工作。感谢您的关注,祝您有美好的一天。
我意识到列显示不正确,但我没有时间纠正,对不起。
解决方案
标题行中有一个前导空格。
让你的数据像这样
time alpha abeta e2e rg rg2
0.000000 0.402192 3.661472 0.599572 0.606992 0.636918
1.000000 0.411551 3.697878 0.580192 0.604391 0.624746
2.000000 0.354966 3.408603 0.704422 0.622932 0.653885
3.000000 0.359647 3.473973 0.681276 0.624507 0.656729
4.000000 0.359812 3.614721 0.619767 0.619774 0.647542
在执行相同的 python 代码时,这将是输出:
time alpha abeta e2e rg rg2
0 0.0 0.402192 3.661472 0.599572 0.606992 0.636918
1 1.0 0.411551 3.697878 0.580192 0.604391 0.624746
2 2.0 0.354966 3.408603 0.704422 0.622932 0.653885
3 3.0 0.359647 3.473973 0.681276 0.624507 0.656729
4 4.0 0.359812 3.614721 0.619767 0.619774 0.647542
如果您不允许修改数据文件,请使用此
df = pd.read_csv("C:/Users/Casper/Downloads/data.xvg", sep=' ',skiprows=1, names=['time', 'alpha', 'abeta', 'e2e', 'rg', 'rg2'])
推荐阅读
- python - Pyinstaller Qt5 应用程序无法在 Windows 10 中启动
- kubernetes - 有没有办法将 openebs 副本限制到 k8s 集群中的特定节点?
- c# - 无法在 http://localhost 上启动驱动程序服务
- multithreading - boost::python 线程通过 python 暂停和恢复 c++ 函数
- python - 有什么方法可以将 seaborn 中的颜色条(cbar)更改为图例(对于二进制热图)?
- protractor - Protractor browser.wait 打破了测试
- ibm-watson - 在生产中部署 IBM WKS 实验性基于规则的模型:这样做是否可取?
- reactjs - 如何在反应组件库中加载可替换文件?
- react-native - 包含图像比例的全宽图像在 React-Native 中不会被拉伸
- r - 用dplyr选择一个组,只用于操作,不保存选择