我正在将数据从Python导出到SQL数据库,出于性能原因,我试图确保将要导出的数据注册为具有正确的类型。因此,我正在尝试创建具有正确数据类型的数据熊猫系列。我假设在pd.Series对象上调用dtype会产生其基础元素的数据。我很难让它用于字符串数据。
以下是演示该问题的代码示例:
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')
,因此在这种情况下,Pandas已从列表输入中正确推断出数据类型。如果我尝试pd.Series(orig_data_string).astype(str)
,则会得到相同的结果。如何从字符串列表中创建具有基础数据类型str
的Pandas Series对象?
答案 0 :(得分:3)
熊猫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