我想删除一个县的种族(少于1%)。 我在用熊猫。如果你注意到一些种族在一个县的值小于1%。我想忽略那些种族,展示人口更多的种族
CensusTract State County TotalPop Men Women Hispanic White Black Native Asian Pacific 1001020100 Alabama Autauga 1948 940 1008 0.9 87.4 7.7 0.3 0.6 0 1001020400 Alabama Autauga 4423 2172 2251 10.5 82.8 3.7 1.6 0 0
我试过这个
dataset = tract_data.query("Income >= 50000 & Poverty > 50")
dataset.loc[:,'Races'] = dataset.apply(lambda row: list(zip(list(row.index)
[6:12], list(row)[6:12])), axis =1)
dataset.loc[:,'Races'] = dataset.Races.apply(lambda x: '; '.join(['{}:
{}'.format(t[0], t[1]) for t in list(filter(lambda x: x[1]> 1, x))]))
income = dataset[['CensusTract', 'State', 'County','Races']]
print(dataset['Races'])
但我还是有错误
这就是我想要的
CensusTract State County races 1001020100 Alabama Autauga White: 87.4 Black: 7.7 1001020400 Alabama Autauga Hispanic: 10.5 White: 82.8 Black: 3.7 Native: 1.6
这是实现你目标的一种方法
最后,如果我们打印
df
,这里是我们得到的。你知道吗这是我的想法。我们要比较的值在第6列和最后一列中。对于每一行,我们希望显示行名以及其中的值(如果值大于1)。现在
list(row.index)
给我们该行的列名,list(row)
给我们该行中的值作为列表。我们可以压缩这些列表以获得元组列表[(column_name, value)]
。你知道吗然后我们可以通过
key = value
过滤元组列表,只包含value
大于1的元组。过滤之后,我们将得到一个元组列表,剩下的工作就是格式化元组列表,以我们喜欢的方式显示答案。要了解过滤的工作原理,请尝试:结果应该是
相关问题 更多 >
编程相关推荐