我试图从我正在迭代的一些文本数据中创建一个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类型吗?我从根本上误解了什么吗?
感谢。
答案 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
,例如int
,float
...,其他所有object
s(string
s,{ {1}} s,list
s)。
我想你可以查看relative回答。