尝试找出Pandas在数据字段为int时返回浮点数的原因。有没有解决的办法?试图输出一些CQL命令,这一直让我搞砸了。感谢
df = pd.DataFrame([[11001, 28154, 2457146.7149722599, 37.070666000000003],
[110, 28154, 2457146.7149722599, 37.070666000000003],
[1100, 28154, 2457146.7149722599, 37.070666000000003],
[110, 28, 2457146.7149722599, 37.070666000000003]])
print("\nNote: the first two fields are int64")
print(df.dtypes)
print("\nPrinting the first record of the first field returns an int... GOOD!")
print(df.iloc[0,0])
print("\nSaving the first row off and printing the first fields data returns a float... BAD!")
row1 = df.iloc[0]
print(row1[0])
Note: the first two fields are int64
0 int64
1 int64
2 float64
3 float64
dtype: object
Printing the first record of the first field returns an int... GOOD!
11001
Saving the first row off and printing the first fields data returns a float... BAD!
11001.0
答案 0 :(得分:1)
一个系列有一个dtype。数据框是系列的集合,其中每列是一个单独的系列,并且具有自己的dtype。 df.loc[0]
抓住一排。这一行本身就是不系列。 Pandas将其转换为系列,但现在必须指定一个dtype。由于此行的其他元素是浮点数,因此int会向上浮动。