为了账号安全,请及时绑定邮箱和手机立即绑定

如果在 pandas.series 上声明并将结果附加到列表

如果在 pandas.series 上声明并将结果附加到列表

慕神8447489 2021-06-11 18:09:32
我正在尝试根据结果建立一些列表。你能告诉我为什么这个结果是空的吗?我不是在寻找 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' 的每一行,并仅保留符合此条件的那些行(如果我理解正确的话)。


查看完整回答
反对 回复 2021-06-15
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号