我正在尝试建立一些由结果组成的列表。你能告诉我为什么这个结果是空的吗?
我不是用numpy寻找解决方案,这就是为什么我最初会创建> 50个列表,然后将其保存为CSV的原因。
ERROR: Caused by: com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception: Prefix must resolve to a namespace: SQLTask
答案 0 :(得分:2)
您的表达式df1['Region']=='America'
给出了一个布尔布尔掩码(docs on boolean indexing)。布尔掩码是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()
方法检查Series中的 all 值是否为True。您需要在这里检查每个行中是否存在条件df1 ['Region'] =='America',并仅保留符合该条件的那些行(如果我正确理解您的话)。
答案 1 :(得分:0)
我不确定您想要什么。 如果您想将整个数据框添加到列表中(如果“ America”位于区域中):
for region in df1.Region :
if region == 'America':
America.append(df1)
如果您要添加每个列表中的元素,而该列表的索引与“区域”列表中“美国”的索引相同:
count = 0
for region in df1.Region :
if region == 'America':
America.append(df1.Country[count])
America.append(df1.Capital[count])
count += 1
这能回答问题吗?