我在线上抓取了一些数据,并将它们作为文本保存在记事本中。现在,我想对这些数据进行分析,但是意识到只有一列。
由于文本文件是在漂亮的表中完成的,所以我无法拆分数据。
The text file looks like this.
0
0 +-------------+------+--------+---------+-----...
1 | series id | year | period | value | foot...
2 +-------------+------+--------+---------+-----...
3 | CUUR0000SA0 | 2014 | M12 | 234.812 | ...
4 | CUUR0000SA0 | 2014 | M11 | 236.151 | ...
即使表格看起来有五列,但是当我检查形状时,实际上只有一列。 谁能帮忙将其转换为数据框的五列?
答案 0 :(得分:0)
这里是实现此目的的方法:
import pandas as pd
# Sample text file (stored as a single string)
text = ''' 0
0 +-------------+------+--------+---------+
1 | series id | year | period | value |
2 +-------------+------+--------+---------+
3 | CUUR0000SA0 | 2014 | M12 | 234.812 |
4 | CUUR0000SA0 | 2014 | M11 | 236.151 |'''
# Parse the text file
lst = text.replace('+', '').replace('-', '').replace('|', '').split('\n')
new_lst = [lst[2]] + lst[4:] # Grab the data around the empty rows
# Build the data frame
df = pd.DataFrame(new_lst) # Create data frame from list
df = df[0].str.split(expand=True) # Split data into columns
df.columns = df.iloc[0,:] # Name the columns
df = df[1:] # Remove the first row
df = df[df.columns[1:]] # Remove the first column
df = df.reset_index(drop=True)
print(df)
0 series id year period value
0 CUUR0000SA0 2014 M12 234.812 None
1 CUUR0000SA0 2014 M11 236.151 None
您可能需要稍微调整一下才能使用实际数据。
您可能会像这样读取文本文件:
with open('file.txt') as f:
lines = f.readlines()
您可以使用text = '\n'.join(lines)
,然后继续执行上述脚本的其余部分。