这是我的数据帧:
cols = ['Country', 'Year', 'Orange', 'Apple', 'Plump']
data = [['US', 2008, 17, 29, 19],
['US', 2009, 11, 12, 16],
['US', 2010, 14, 16, 38],
['Spain', 2008, 11, None, 33],
['Spain', 2009, 12, 19, 17],
['France', 2008, 17, 19, 21],
['France', 2009, 19, 22, 13],
['France', 2010, 12, 11, 0],
['France', 2010, 0, 0, 0],
['Italy', 2009, None, None, None],
['Italy', 2010, 15, 16, 17],
['Italy', 2010, 0, None, None],
['Italy', 2011, 42, None, None]]
我要选择的行中,橙色苹果和丰满不只是由“无”,只有0或它们的混合。所以结果应该是:
Country Year Orange Apple Plump
0 US 2008 17.0 29.0 19.0
1 US 2009 11.0 12.0 16.0
2 US 2010 14.0 16.0 38.0
3 Spain 2008 11.0 NaN 33.0
4 Spain 2009 12.0 19.0 17.0
5 France 2008 17.0 19.0 21.0
6 France 2009 19.0 22.0 13.0
7 France 2010 12.0 11.0 0.0
10 Italy 2010 15.0 16.0 17.0
12 Italy 2011 42.0 NaN NaN
第二,我想放弃那些我三年都没有观察到的国家。因此,由此产生的产出应该只有美国和法国。我怎样才能得到它们? 我试过这样的方法:
df = df[(df['Orange'].notnull())| \
(df['Apple'].notnull()) | (df['Plump'].notnull()) | (df['Orange'] != 0 )| (df['Apple']!= 0) | (df['Plump']!= 0)]
我也试过:
df = df[((df['Orange'].notnull())| \
(df['Apple'].notnull()) | (df['Plump'].notnull())) & ((df['Orange'] != 0 )| (df['Apple']!= 0) | (df['Plump']!= 0))]
没有值将被读取为NaN,因此您可以替换0并将它们转换为NaN。在那之后你就可以按照马苏的建议去做了。可能是这样的:
对于你的第二个问题,我理解在这个例子中,你想摆脱那些你没有200820092010年观察数据的国家。 为此,你可以采取如下措施:
这将产生如下结果:
最后,您可以同时应用这两种解决方案:
获取:
相关问题 更多 >
编程相关推荐