我正在尝试根据结果建立一些列表。你能告诉我为什么这个结果是空的吗?我不是在寻找 numpy 的解决方案,这就是为什么最初我会创建 > 50 个列表,然后将其保存到 CSV。df1 = pd.DataFrame(data={"Country":["USA","Germany","Russia","Poland"], "Capital":["Washington","Berlin","Moscow","Warsaw"], "Region": ["America","Europe","Europe",'Europe']})America = []if (df1['Region']=='America').all():America.append(df1)print(America)
2 回答

慕的地8271018
TA贡献1796条经验 获得超4个赞
您的表达式df1['Region']=='America'给出了一个所谓的布尔掩码(布尔索引文档)。布尔掩码是一个熊猫Series,其索引True与False索引对齐df1。
一旦习惯了布尔索引,就很容易获得预期值:
df1[df1['Region']=='America']
Country Capital Region
0 USA Washington America
如果您对保留整行感兴趣,请不要费心手动构建 python 列表;与坚持使用熊猫相比,这会使您的工作变得非常复杂。您可以将行存储在新的 DataFrame 中:
# Use df.copy() here so that changing America won't change df1
America = df1[df1['Region']=='America'].copy()
为什么if (df1['Region']=='America').all():没有用
该Series.all()方法检查系列中的所有值是否都为 True。您在这里需要做的是检查条件 df1['Region']=='America' 的每一行,并仅保留符合此条件的那些行(如果我理解正确的话)。
添加回答
举报
0/150
提交
取消