Как посчитать длину пропущенных значений для строковых переменных как ноль? - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь посчитать длину переменных объекта в кадре данных с помощью Python. Многие мои переменные представляют собой строку с пропущенными значениями, и, к сожалению, когда я пытаюсь посчитать длину пропущенных значений, она отображается как 3 (поскольку она считает «Nan» как значение из 3 символов).

Вот код, которыйЯ использую:

df_string_mean_with_na = pd.DataFrame(df_string.applymap(len).astype(int).mean().to_dict(), index=[df_string.index.values[0]])

, где df_string - мой начальный кадр данных, и я пытаюсь вычислить среднюю длину значений для каждого столбца. Я хотел бы посчитать длину отсутствующих значений для переменных объекта как 0, есть ли способ?

1 Ответ

1 голос
/ 02 октября 2019

Я думаю, вам нужно DataFrame.fillna для замены отсутствующих значений на пустые строки перед подсчетом length:

print (Table1)
       A      B    C
0  hello     hi  NaN
1   good     hi   so
2   home  hello   no

Проверка отсутствующих значений:

print (Table1.isna())
       A      B      C
0  False  False   True
1  False  False  False
2  False  False  False

df = Table1.fillna('').applymap(len).mean().to_frame().T
print (df)
          A    B         C
0  4.333333  3.0  2.333333

Деталь :

print (Table1.fillna('').applymap(len))
   A  B  C
0  5  2  0
1  4  2  2
2  4  5  2

Если пропущенные значения strings, используйте DataFrame.replace:

print (Table1.isna())
       A      B      C
0  False  False  False
1  False  False  False
2  False  False  False

df = Table1.replace('NaN', '').applymap(len).mean().to_frame().T
print (df)
          A    B         C
0  4.333333  3.0  2.333333
...