df['movieId']=df['movieId'].astype('int')
df.loc[92]['movieId']
df.loc[92]['movieId']
的输出为134368.0
但它应该是134368
我检查了dtype
df.loc[92]['movieId'].dtype
并且它给出了dtype('float64')
但其他值已经转换为int。
答案 0 :(得分:2)
问题在于选择:
df.loc[92]['movieId']
首先选择92索引,使用浮点数将行转换为Series
,因为另一个float
列。
通过DataFrame.loc
正确选择索引和列值:
df.loc[92, 'movieId']
<强>示例强>:
df = pd.DataFrame({'movieId':[1343680.0, 134369.0],
'col':[4,7.5]}, index=[92,95])
print (df)
col movieId
92 4.0 1343680.0
95 7.5 134369.0
df['movieId']=df['movieId'].astype('int')
print (df)
col movieId
92 4.0 1343680
95 7.5 134369
print (df.loc[92])
col 4.0
movieId 1343680.0
Name: 92, dtype: float64
print (df.loc[92]['movieId'])
1343680.0
print (df.loc[92, 'movieId'])
1343680
答案 1 :(得分:1)
尝试使用numpys int64
<强>实施例强>
import numpy as np
df['movieId']=df['movieId'].astype(np.int64)