我有一些数据看起来像这样:
c stuff
c more header
c begin data
1 1:.5
1 2:6.5
1 3:5.3
我想将其导入到 3 列数据框中,其中列例如
a , b, c
1, 1, 0.5
etc
我一直在尝试将数据读入“:”上拆分的两列,然后将第一列拆分为“”。不过我觉得这很烦人。
有没有更好的方法直接在导入时进行排序?
现在:
data1 = pd.read_csv(file_loc, skiprows = 3, delimiter = ':', names = ['AB', 'C'])
data2 = pd.DataFrame(data1.AB.str.split(' ',1).tolist(), names = ['A','B'])
然而,由于我的数据有领先空间,这使得情况变得更加复杂......
我觉得这应该是一个简单的任务,但目前我正在考虑逐行阅读它并在导入之前使用一些查找替换来清理数据。
一种方法可能是使用 python 引擎允许的正则表达式分隔符。例如:
>>> !cat castle.dat
c stuff
c more header
c begin data
1 1:.5
1 2:6.5
1 3:5.3
>>> df = pd.read_csv('castle.dat', skiprows=3, names=['a', 'b', 'c'],
sep=' |:', engine='python')
>>> df
a b c
0 1 1 0.5
1 1 2 6.5
2 1 3 5.3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)