python-如何从自定义值创建DataFrame
作者:互联网
我正在阅读一个文本文件,每一行都有多个值.我正在根据需求使用函数解析来解析它们.
def parse(line):
......
......
return line[0],line[2],line[5]
我想创建一个数据框,每行为一行,三个调整后的值为列
df = pd.DataFrame()
with open('data.txt') as f:
for line in f:
df.append(line(parse(line)))
当我运行上面的代码时,我将所有值作为单个列获取.是否有可能以正确的表格格式获取它.
解决方法:
您不应该以循环方式附加到DataFrame,否则效率很低.做类似的事情:
colnames = ['col1','col2','col3'] # or whatever you want
with open('data.txt') as f:
df = pd.DataFrame([parse(l) for l in f], columns=colnames)
注意,基本问题是pd.DataFrame.append期望另一个数据帧,并且追加了该另一个数据帧的行.它将列表解释为一堆单行.因此请注意,如果您将列表构造为具有“行”,则它将按预期工作.但是无论如何,您都不应该使用.append:
In [6]: df.append([1,2,3])
Out[6]:
0
0 1
1 2
2 3
In [7]: df = pd.DataFrame()
In [8]: df.append([[1, 2, 3]])
Out[8]:
0 1 2
0 1 2 3
标签:data-cleaning,pandas,dataframe,python 来源: https://codeday.me/bug/20191025/1929797.html