大熊猫的行程会更改列的类型。根据此github问题,这是预期的行为。
对将其转换回原始类型的pythonic优雅方式有任何想法吗?请注意,我有多种列类型。
最小的例子
df = pd.DataFrame([range(5), range(5)])
df.iloc[:,1] = df.iloc[:,1].astype('float')
for row in df.iterrows():
print row
结果与
(0, 0 0.0
1 1.0
2 2.0
3 3.0
4 4.0
Name: 0, dtype: float64)
(1, 0 0.0
1 1.0
2 2.0
3 3.0
4 4.0
Name: 1, dtype: float64)
请注意,它df.dtypes
返回列的类型,但是,我想不出一种使用它将行强制转换回该类型的优雅方法。
尝试df.itertuples
改用:
df = pd.DataFrame([range(5), range(5)], columns=list('abcde'))
df.iloc[:,1] = df.iloc[:,1].astype('float')
for row in df.itertuples():
print(row)
Pandas(Index=0, a=0, b=1.0, c=2, d=3, e=4)
Pandas(Index=1, a=0, b=1.0, c=2, d=3, e=4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句