python - 如何创建字符串类型的 Pandas 系列?
问题描述
我正在将数据从 Python 导出到 SQL 数据库,出于性能原因,我试图确保我正在导出的数据被注册为具有正确的类型。因此,我正在尝试创建我的数据的 Pandas 系列,具有正确的数据类型。我假设在 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 对象?
解决方案
Pandas 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
推荐阅读
- python - 检查范围的长度除以范围元素是否没有除余
- c - 使用C中的递归从txt文件反向打印
- concatenation - DAX Concatenate 不适用于文本字段
- r - 在 r 中创建动态报价值
- android - ViewPager中带有StaggeredGridLayoutManager的RecyclerView,返回fragment时自动排列item
- sql-server - 从 SQL Server 2008R2 到 SQL Server 2017 的事务复制
- haskell - 在没有 cabal 的情况下编译具有外部依赖项的 haskell 脚本
- python - 样式表在 PyQt 中无法正常工作
- python-3.x - 如何使用 MongoDB/pyMongo 使字段路径在同一文档中包含一个值?
- vim - Vim 无法使用 Exuberant Ctags 导航生成的标签