gpt4 book ai didi

python - 一些 float 值在 pandas Dataframe 中没有转换为 int

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:57 24 4
gpt4 key购买 nike

df['movieId']=df['movieId'].astype('int')
df.loc[92]['movieId']

df.loc[92]['movieId'] 的输出是 134368.0不过应该是134368

我检查了数据类型

df.loc[92]['movieId'].dtype

它给出 dtype('float64') 但其他值已转换为 int。

最佳答案

问题在于选择:

df.loc[92]['movieId']

首先选择 92 索引,将行转换为带有 float 的 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

关于python - 一些 float 值在 pandas Dataframe 中没有转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50327507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com