我正在附加到 pandas.DataFrame,并且列的 dtype 以意外的方式转换:
import pandas as pd
df=pd.DataFrame({'a':1.0, 'b':'x'}, index=[0])
print df.dtypes
df = df.append({'a':3.0}, ignore_index=True)
print df.dtypes
df = df.append({'a':3.0, 'b':'x'}, ignore_index=True)
print df.dtypes
Output:
a float64
b object
dtype: object
a float64
b object
dtype: object
a object <- ???
b object
dtype: object
而我本来期望float64
而不是那个object
。
我怎样才能避免这种转换?
我正在使用熊猫0.11。
试试这个,首先将 dict 对象转换为 DataFrame:
import pandas as pd
df=pd.DataFrame({'a':1.0, 'b':'x'}, index=[0])
print df.dtypes
df = df.append({'a':3.0}, ignore_index=True)
print df.dtypes
df = df.append(pd.DataFrame([{'a':3.0, 'b':'x'}]), ignore_index=True)
print df.dtypes
或者,字典列表:
df = df.append([{'a':3.0, 'b':'x'}], ignore_index=True)
如果它是一个字典,它将首先转换为一个系列,一个系列包含 3.0 并且“x”必须具有对象数据类型。
如果它是一个字典列表,它将被转换为一个 DataFrame,DataFrame 的每一列可以有不同的 dtype。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)