Как использовать номер (а) столбца вместо имени (имен) для условно поднабора строк в Pandas - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу использовать pd.notnull для поднабора строк в панде DataFrame, где value не пропущено. Однако вместо использования имени столбца я хочу использовать номер столбца. Как я могу это сделать?

import numpy as np
import pandas as pd
df = pd.DataFrame({
    'index': [1, 2, 3, 4, 5],
    'value': [2, 6, np.nan, 8, np.nan]
})

# This works
df[pd.notnull(df['value'])]

# This doesn't work
df[pd.notnull(df.columns[1])]

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Похоже, вы хотите dropna с subset

df.dropna(subset=[df.columns[1]])
Out[407]: 
   index  value
0      1    2.0
1      2    6.0
3      4    8.0
0 голосов
/ 07 сентября 2018

Чтобы найти столбцы по индексу, используйте iloc

df[pd.notnull(df.iloc[:, 1])]

или

df[pd.notnull(df[df.columns[1]])]

columns[1] возвращает 'value', а pd.notnull('value') не имеет смысла. Вы должны либо использовать это возвращаемое значение, чтобы получить pd.Series вашего столбца с помощью df['value'] или , напрямую использовать индекс, чтобы получить столбец с помощью iloc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...