import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
print df
在创建DataFrame时,我们将数据类型定义为float,但没有指定要将哪一列更改为float。我们让python根据值来决定是否有必要更改列数据类型。
只是想知道,在这种情况下,这仍然是严格强类型的吗?
谢谢!
发布于 2018-07-13 04:47:38
Python是一种强动态类型的语言(参见Is Python strongly typed?)。
如果在构造pd.DataFrame
时显式传递dtype=float
,Pandas
将尝试强制所有列为浮点型。在本例中,'Name‘列不能被强制为浮点型,因此它将保持为object
(您可以将其视为纯str
中的Python值)。
通常,您可以将dtype
留空,以便让Pandas
为DataFrames
推断数据类型。然后执行一个df.info()
,看看dtype对您是否有意义。你不认可的,你可以这样修改:
df['Age'] = df['Age'].astype(int)
https://stackoverflow.com/questions/51313944
复制相似问题