下面的命令可以正常工作
idx = np.asarray(df.loc[df['lat1'] != '.'].ix[:,0].index)
但是我正在尝试做这样的事情(有两个条件):
idx = np.asarray(df.loc[df['lat1'] != '.' and df['state'] == df['state'][0]].ix[:,0].index)
这将引发以下回溯:
Traceback (most recent call last):
File "<ipython-input-274-c07cda0be195>", line 1, in <module>
idx = np.asarray(df.loc[df['lat1'] != '.' and df['state'] == df['state'][0]].ix[:,0].index)
File "/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py", line 1573, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我已经查了一下,但是找不到适合这种情况的调整。任何线索将不胜感激。
[编辑]:根据以下建议,当我尝试这样做时:
df[(df['lat1']!='.') & (df['state']== df['state'][0])]
我明白了
lat1 long1 ... state county
5 34 11 ... AK Anchorage
7 1 -3 ... AK Anchorage
14 1 -5 ... AK Anchorage
30 7 -3 ... AK Anchorage
44 1 -4 ... AK Anchorage
47 1 -3 ... AK Anchorage
75 1 -4 ... AK Juneau
82 5 -1 ... AK Kenai Peninsula
102 4 -1 ... AK Fairbanks North Star
106 4 -1 ... AK Matanuska Susitna
137 3 -3 ... AK Matanuska Susitna
[11 rows x 5 columns]
如何仅提取包含索引的第一列?
答案 0 :(得分:1)
我很确定这个问题已经在某个地方被问到了……但是使用熊猫,您可以看到两个这样的情况。
df[(df['lat1']!='.') & (df['state']== df['state'][0])]
您必须进行按位运算