嗨,大家好,我有一个简单的问题,我试图在数据框中找到所有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/

10-12 20:22