嗨,大家好,我有一个简单的问题,我试图在数据框中找到所有NaN字段的iloc行位置(列B)。到目前为止,我正在通过以下方式解决问题:
rng= ['AA', 'BB', 2, 3, 4, 5]
df1 = pd.DataFrame(np.random.randn(6, 3), index=rng, columns=['A', 'B', 'C'])
df1.iloc[1][1]= np.nan
+----------------------------------+
| A B C |
+----------------------------------+
| AA 0.198267 -1.469309 -1.751756 |
| BB -1.376388 Nan 0.988391 |
| 2 -1.697636 -0.814975 0.614170 |
| 3 -1.187977 1.240791 -1.079049 |
| 4 -1.495139 0.215619 -1.572205 |
| 5 1.157736 -0.656647 -0.307207 |
+----------------------------------+
ind_com=df1.loc[df1.B.isnull()].index.values.tolist()
ind_list=[]
for ii in ind_com:
ind_list.append(df_temp.index.get_loc(ii))
ind_list = 1
当然,必须有更好的方法。
谢谢
最佳答案
我认为您需要:
pos = [df1.index.get_loc(x) for x in df1.index[df1.B.isnull()]]
numpy.where
的另一种解决方案:pos = np.where(df1.B.isnull().values)[0].tolist()
或
numpy.nonzero
:pos = np.nonzero(df1.B.isnull().values)[0].tolist()
关于python - Python:在pandas数据框中获取位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43918074/