сохраняя значения NULL в том виде, в каком они есть в столбцах panda, при назначении им типа - PullRequest
0 голосов
/ 12 октября 2018

У меня есть фрейм данных panda, и я хочу импортировать его в bigquery с помощью to_gbq ().Некоторые из столбцов имеют нулевое значение, и я хочу сохранить их, как они есть, без замены нулевого значения на Nan, None или другую строку.например, если я использую строку ниже, если заменить нулевые значения на 0. Есть ли способ сохранить нулевые значения при изменении их типа?

 df['ViewersStart']=df['ViewersStart'].fillna(0).astype('int64')

1 Ответ

0 голосов
/ 12 октября 2018

Использование loc для замены только там, где ViewersStart не равно нулю:

df.loc[df.ViewersStart.notnull(),'ViewersStart'] = df.loc[df.ViewersStart.notnull(),'ViewersStart'].astype('int64')

Пример :

df = pd.DataFrame({'ViewersStart':['1','5',6,np.nan,'12']})
>>> df
  ViewersStart
0            1
1            5
2            6
3          NaN
4           12

# Notice that your column is a mix of strings, ints and NaN
>>> df.values
array([['1'],
       ['5'],
       [6],
       [nan],
       ['12']], dtype=object)

df.loc[df.ViewersStart.notnull(),'ViewersStart'] = df.loc[df.ViewersStart.notnull(),'ViewersStart'].astype('int64')

>>> df
  ViewersStart
0            1
1            5
2            6
3          NaN
4           12

# Notice that all non-null values are now ints
>>> df.values
array([[1],
       [5],
       [6],
       [nan],
       [12]], dtype=object)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...