【问题标题】:Setting column on empty dataframe在空数据框上设置列
【发布时间】:2018-02-26 13:43:22
【问题描述】:

我正在从文本文件中读取 json 数组,然后创建一个空数据框。我想在空数据框中添加一个新列“id”。 'id' 来自文本文件中的 json 数组。

错误消息显示“无法设置没有定义索引的框架和无法转换为系列的值”。我试图通过预先定义数据框大小来克服这个错误,但这没有帮助。有什么想法吗?

import json
import pandas as pd

path = 'my/path'
mydata = []
myfile = open(path, "r")

for line in myfile:
    try:
        myline = json.loads(line)
        mydata.append(myline)
    except:
        continue

mydf = pd.DataFrame()
mydf['id'] = map(lambda myline: myline['id'], mydata)

【问题讨论】:

    标签: json python-3.x dataframe


    【解决方案1】:

    我认为更好的是使用:

    for line in myfile:
        try:
            #extract only id to list
            myline = json.loads(line)['id']
            mydata.append(myline)
        except:
            continue
    
    print (mydata)
    [10, 5]
    
    #create DataFrame by constructor
    mydf = pd.DataFrame({'id':mydata})
    print (mydf)
       id
    0  10
    1   5
    

    【讨论】:

    • Blanket except 声明几乎总是应该避免
    猜你喜欢
    • 2020-10-11
    • 2015-02-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2019-12-21
    相关资源
    最近更新 更多