Как изменить вектор питона, когда некоторые элементы пусты - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть df со значениями:

   A   B   C   D
0  1   2   3   2        
1  2   3   3   9        
2  5   3   6   6        
3  3       6   7       
4  6           7      
5  2              

df.shape - это 6x4, скажем

df.iloc[:,1] вытаскивает столбец B, но len(df.iloc[:,1]) также = 6

Как мне "изменить" df.iloc[:,1]? Какую функцию я могу использовать для вывода длины фактических значений в столбце.

Мой ожидаемый результат в этом случае 3

Ответы [ 2 ]

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

Вы можете использовать last_valid_index. Просто отметьте, что поскольку ваша серия изначально содержала NaN значений, и они считаются float, даже после фильтрации ваша серия будет float. Вы можете преобразовать в int как отдельный шаг.

# first convert dataframe to numeric
df = df.apply(pd.to_numeric, errors='coerce')

# extract column
B = df.iloc[:, 1]

# filter to the last valid value
B_filtered = B[:B.last_valid_index()]

print(B_filtered)

0    2.0
1    3.0
2    3.0
3    6.0
Name: B, dtype: float64
0 голосов
/ 05 сентября 2018

Вы можете использовать понимание списка следующим образом.

len([x for x in df.iloc[:,1] if x != ''])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...