Python-使用pandas.DataFrame.append遇到麻烦

问题描述 投票:-1回答:1

有人可以帮我找出为什么quer.append(l)无法正常工作吗?我对'quer'和'l'的查询似乎正常工作。 quer返回31行(Hill列中的所有行均为“ YES”。'l'返回9行(Underwater列中的所有行均为“ YES”)。然后,我尝试将这两行附加在一起,但是“似乎不起作用。”“返回查询”仅返回Hill列中的31个YES,并且未附加“ l”数据框

CSV:https://docs.google.com/spreadsheets/d/1PjnN00bikJfY7mO3xt4nV5Ua1yOIsh8DycGqed6hWD8/edit?usp=sharing

工作流程:将csv另存为Monsters.csv和python文件在同一文件夹中并运行python文件

import pandas as pd
import os

abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)

currentDir = os.getcwd()

data = pd.read_csv(r'Monsters.csv')

def biomes(biome):
        ind = 0
        for i in range(len(biome)):
            if i == 0:
                quer = data.query("{} == 'YES'".format(biome[ind]))
                print ("Hill:", quer)  # returns 31 rows
            if i > 0:
                l = data.query("{} == 'YES'".format(biome[ind]))
                quer.append(l)   #this append is not working
                print ("Underwater: ", l ) #returns 9 rows
            ind += 1
        return quer # returns 31 rows (only the Hill biome) for some reason.

print(biomes(["Hill", "Coast"]))
python pandas append
1个回答
1
投票

根据official Pandas documentationDataFrame.append()返回一个新对象-它不会修改正在调用的对象。因此,我相信您的append()正在创建一个新的DataFrame,但没有在任何地方分配它。

尝试用quer.append(l)替换quer = quer.append(l)来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.