читать pandas colum со значениями чисел и отсутствующими данными в виде строки - PullRequest
0 голосов
/ 24 августа 2018

В моем фрейме данных есть столбец Id, например:

a = pandas.DataFrame ([12673, 44, 847])

В этих данных отсутствуют некоторые значения.Если I Keep_default_NA = True, то пропущенное значение заполняется NaN, а данные считываются как плавающие, и поэтому значения изменяются на

12673.0 , 44.0, 847.0

, что не желательно (я хочу отбросить значения NAи преобразовать в str / obj, потому что идентификатор может быть любой длины).Если я keep_default_NA = False, то все другие столбцы (например, логические) становятся объектами, и мне приходится сравнивать строковые значения, чтобы узнать истинные / ложные значения.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Без лучшей выборки ваших данных я не могу быть уверен, но, возможно, это поможет:

Сначала вы читаете свои данные, сохраняя dtype, а затем в основном читаете их снова, чтобы получить правильные id. Если ваши логические столбцы также пропускают значения (пустые строки), вам нужно будет привести эти строки к df.astype("bool").

df1 = pd.read_csv("test.csv", keep_default_na=True).dropna()
df2 = pd.read_csv("test.csv", keep_default_na=False)
df1["id"] = df2.loc[df1.index]["id"]
df = pd.DataFrame(df1.to_dict())

, если вы не хотите читать его дваждыВы можете прочитать его с помощью keep_default_na=False, затем отфильтровать строки с пустыми строками и привести каждый столбец к желаемому dtype или df = pd.DataFrame(df1.to_dict()).

0 голосов
/ 24 августа 2018

Если вы хотите значения NaN, вы должны иметь плавающие значения.https://stackoverflow.com/a/38003951/3841261

Используйте "keep_default_NA = True", затем после удаления NaN преобразуйте столбец в целые числа.

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