Pandas DataFrame类型未自动设置

时间:2017-05-19 11:35:12

标签: python pandas decimal

我试图从我正在迭代的一些文本数据中创建一个Pandas DataFrame(它是来自API的许多json字符串的转储)。

有些数据是小数字,例如0.00000001。我在另一个应用程序的其他地方使用Python Decimal类型。我不确定如何让Pandas认识到这些是小数。无论我是先从它们创建Decimal对象,还是仅从字符串创建DataFrame,Pandas都会创建通用的object列。还有其他列格式不同。

举一个简单的例子:

import pandas as pd
df = pd.DataFrame([Decimal('0.01'),])
df.dtypes

输出:

0    object
dtype: object

我应该使用Decimal类型吗?我从根本上误解了什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

需要type来检查Decimal

from decimal import Decimal
import pandas as pd
df = pd.DataFrame([Decimal('0.01'),])
print (df)
      0
0  0.01

print (type(df.loc[0, 0]))
<class 'decimal.Decimal'>

pandas只识别某些dtypes,例如intfloat ...,其他所有object s(string s,{ {1}} s,list s)。

我想你可以查看relative回答。