【发布时间】:2021-10-30 03:58:25
【问题描述】:
我有一个数据框,我想在其中的列末尾添加值,不使用索引,因为我在对象内执行此操作, 由于某种原因,pandas append 对我不起作用,我尝试直接将其添加到另一个数据框中(代码中的 x)。 我想要类似的东西:
DB=pd.DataFrame(columns=['reviews'])
DB= DB.append(object)# append to reviews column, reviews is also an object
但是当我这样做时,我得到了错误:
UnboundLocalError: local variable 'DB' referenced before assignment
我期待得到类似的东西:
reviews
0 <__main__.Review object at 0x0000020D2A14BD48>
1 <__main__.Review object at 0x0000020D29F17D88>
我的代码是这样的:
DB=pd.DataFrame(columns=['reviews'])
class Review:
def __init__(self, json_string):
self.json_string=json_string
def get_text(self):
json_dict=json.loads(self.json_string)
return json_dict['body']
class ReviewSearchEngine:
def __init__(self):
pass
def add(self, review:Review):
x = pd.DataFrame(columns=['reviews'])
x.loc[0, 'reviews'] = review
****DB= DB.append(x)****
return
if __name__ == '__main__':
search_engine = ReviewSearchEngine()
file_path = "./review_data.txt"
lines = open(file_path).readlines()
for line in lines:
review = Review(line) # review is an object
search_engine.add(review)
【问题讨论】:
-
DB在类之外定义。您应该在__init__的类中定义它 -
您能提供一个示例输出吗?它是您尝试在评论列中附加的字符串吗?例如,将名称附加到“评论”?
-
谢谢,它正在工作(当我实际上将它添加到属性中时)但现在我为来自 x 的所有评论获取索引 0,当我尝试 DB.append(reviews) 时,我得到一个错误。所以我遇到了同样的问题,没有任何方法可以作为列表工作吗?
-
在上面的问题中添加
标签: python pandas object indexing append