编程语言
首页 > 编程语言> > python-如何从自定义值创建DataFrame

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