我需要使用存储在文件中的数据创建数据框.为此,我想使用read_csv
方法.但是,分隔符不是很规则.有些列由tabs(\t
)分隔,其他列由空格分隔.此外,一些列可以通过2或3个或更多个空格分隔,或者甚至通过空格和标签的组合(例如3个空格,两个标签然后1个空格).
有没有办法告诉大熊猫正确对待这些文件?
顺便说一下,如果我使用Python,我就没有这个问题.我用:
for line in file(file_name):
fld = line.split()
Run Code Online (Sandbox Code Playgroud)
它完美无缺.它不关心字段之间是否有2或3个空格.即使空格和制表符的组合也不会造成任何问题.大熊猫可以这样做吗?
我有一些看起来像这样的数据:
c stuff
c more header
c begin data
1 1:.5
1 2:6.5
1 3:5.3
Run Code Online (Sandbox Code Playgroud)
我想将它导入3列数据框,例如列
a , b, c
1, 1, 0.5
etc
Run Code Online (Sandbox Code Playgroud)
我一直试图读取数据,因为2列分为':',然后将第一列拆分为''.但是我发现它令人厌烦.是否有更好的方法直接对其进行排序?
目前:
data1 = pd.read_csv(file_loc, skiprows = 3, delimiter = ':', names = ['AB', 'C'])
data2 = pd.DataFrame(data1.AB.str.split(' ',1).tolist(), names = ['A','B'])
Run Code Online (Sandbox Code Playgroud)
然而,由于我的数据具有领先的空间,这使事情变得更加复杂......
我觉得这应该是一个简单的任务,但是目前我正在考虑逐行阅读并使用一些find replace来在导入之前清理数据.