猿问

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

我正在尝试根据结果建立一些列表。你能告诉我为什么这个结果是空的吗?


我不是在寻找 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)


慕神8447489
浏览 177回答 2
2回答

慕的地8271018

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

相关分类

Python
我要回答