我有一个文本文件。文件中的每一行都如下所示,但长度不同:
negative
当我使用http
时,它会将其读入一列,我尝试将文件转换为Excel或CSV,但仍会将其转换为一列
我希望它是一个双列数据框,其中var allData={"uid": user_id, "emp_id": emp_id, "job_id": job_id}
$http({
url: 'msg_check.php',
method: "GET",
// params: {'uid': user_id, 'emp_id': emp_id, 'job_id': job_id}
params: allData
})
.success(function(datas) {
$scope.choices = datas;
});
位于其自己的列中,其余列位于另一列中。
答案 0 :(得分:2)
首先将整个文件读入一个包含单列的DataFrame:
df = pd.read_csv('/path/to/file.txt', sep='~', header=None)
的产率:
In [50]: df
Out[50]:
0
0 negative aaa bbb ccc ddd
1 positive qqq vvv
现在我们可以像这样解析它:
In [51]: df[['col1','col2']] = df.pop(0).str.extract(r'^([^\s]+)\s*(.*?)$', expand=True)
In [52]: df
Out[52]:
col1 col2
0 negative aaa bbb ccc ddd
1 positive qqq vvv
或:
In [65]: df[['col1','col2']] = df.pop(0).str.split(n=1, expand=True)
In [66]: df
Out[66]:
col1 col2
0 negative aaa bbb ccc ddd
1 positive qqq vvv
答案 1 :(得分:2)
您可以构建自己的解析器,如:
<强>代码:强>
def parse_my_file(filename):
with open(filename) as f:
for line in f:
yield line.strip().split(' ', 1)
测试代码:
df = pd.DataFrame(parse_my_file('file1'))
print(df)
<强>结果:强>
0 1
0 negative فينو اهبل ابن اهبل
1 neutral فينو اهبل ابن اهبل
2 positive فينو اهبل ابن اهبل
答案 2 :(得分:1)
输入:
from io import StringIO
table = """
negative فينو اهبل ابن اهبل
positive فينو اهبل ابن اهبل
neutral فينو اهبل ابن اهبل
negative فينو اهبل ابن اهبل
negative فينو اهبل ابن اهبل
negative فينو اهبل ابن اهبل
"""
读取文件:
df_in = pd.read_fwf(StringIO(table),widths=[8,1000])
print(df_in)
输出:
Unnamed: 0 Unnamed: 1
0 negative فينو اهبل ابن اهبل
1 positive فينو اهبل ابن اهبل
2 neutral فينو اهبل ابن اهبل
3 negative فينو اهبل ابن اهبل
4 negative فينو اهبل ابن اهبل
5 negative فينو اهبل ابن اهبل