Как создать серию панд типа string? - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над экспортом данных из Python в базу данных SQL, и из соображений производительности я пытаюсь убедиться, что экспортируемые данные зарегистрированы как имеющие правильный тип.Поэтому я пытаюсь создать серию моих данных Pandas с правильным типом данных.Я предполагаю, что вызов dtype для объекта pd.Series возвращает данные его базовых элементов.У меня возникают проблемы с тем, чтобы это работало для строковых данных.

Вот пример кода, демонстрирующий проблему:

orig_data_string = ['abc'] * 10
pd_data_string = pd.Series(orig_data_string)
pd_data_string.dtype

Запуск вышеупомянутого в консоли Python дает dtype('O'), который явзять, чтобы указать тип объекта.Я хотел бы, чтобы вместо этого была строка.Теперь я могу сделать нечто подобное с числовыми значениями:

orig_data_float = [1.23] * 10
pd_data_float = pd.Series(orig_data_float)
pd_data_float.dtype

, и в этом случае я получу результат dtype('float64'), поэтому Панды в этом случае правильно вывели тип данных из списка ввода.Если я попытаюсь pd.Series(orig_data_string).astype(str), я получу тот же результат.Как я могу создать объект серии Pandas с базовым типом данных str из списка строк?

1 Ответ

0 голосов
/ 20 ноября 2018

Панды object O dtype рассматриваются как str.Пожалуйста, обратитесь к приведенному ниже примеру.

>>> df = pd.DataFrame({'float': [1.0],
...                    'int': [1],
...                    'datetime': [pd.Timestamp('20180310')],
...                    'string': ['foo']})
>>> df.dtypes
float              float64
int                  int64
datetime    datetime64[ns]
string              object
dtype: object

Ссылка: https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.dtypes.html

...