草庐IT

img_float

全部标签

python - 在 Pandas 中将 float 转换为字符串

我对Pandas中的数据类型“object”有点困惑。“对象”到底是什么?我想将变量“SpT”(见下文)从对象更改为字符串。>df_cleaned.dtypesVmagfloat64RAfloat64DEfloat64Plxfloat64pmRAfloat64pmDEfloat64B-Vfloat64SpTobjectM_Vfloat64distancefloat64dtype:object为此,我执行以下操作:df_cleaned['SpT']=df_cleaned['SpT'].astype(str)但这对SpT的dtype没有影响。这样做的原因是当我执行以下操作时:f=lambd

python - 获取并操作 float 的位模式作为整数

在Python2.5中,我有一个float,我想获取它的位模式并将其作为整数进行操作。例如,假设我有x=173.3125在IEEE754格式中,x的十六进制位模式是432D5000。我如何获取和操作(例如,执行按位运算)该位模式? 最佳答案 您可以使用struct模块获取您想要的字符串(显然意味着大端、32位表示;Python在内部使用native字节序和64位float):>>>importstruct>>>x=173.125>>>s=struct.pack('>f',x)>>>''.join('%2.2x'%ord(c)forc

python - 将 float 转换为逗号分隔的字符串

我如何将float转换成它的“会计形式”——100028282.23-->100,028,282.23100028282-->100,028,282.00是否有python方法可以做到这一点? 最佳答案 作为beerbajay的替代品的优秀答案,简单的字符串格式适用于2.7+,无需导入:>>>'{0:,.2f}'.format(24322.34)'24,322.34' 关于python-将float转换为逗号分隔的字符串,我们在StackOverflow上找到一个类似的问题:

Python float 比较

我只是在复习Python的一些基础知识,比较float有一个棘手的问题。2.2*3.0==6.63.3*2.0==6.6我认为这些都应该返回False。然而,第二个给了我一个真实的。请帮帮我。谢谢! 最佳答案 这可能很有启发性:>>>float.hex(2.2*3.0)'0x1.a666666666667p+2'>>>float.hex(3.3*2.0)'0x1.a666666666666p+2'>>>float.hex(6.6)'0x1.a666666666666p+2'虽然它们都以十进制显示为6.6,但是当您检查内部表示时,其中

python - pandas shift 将我的列从整数转换为 float 。

shift将我的列从整数转换为float。事实证明np.nan只是float。有什么方法可以将移位后的列保持为整数吗?df=pd.DataFrame({"a":range(5)})df['b']=df['a'].shift(1)df['a']#00#11#22#33#44#Name:a,dtype:int64df['b']#0NaN#10#21#32#43#Name:b,dtype:float64 最佳答案 pandas0.24以下解决方案:问题是你得到NaN值什么是float,所以int被转换为float-见natypepromo

python - 为什么 Ruby 的 Float#round 行为与 Python 不同?

"Behaviorof“round”functioninPython"观察到Python圆像这样float:>>>round(0.45,1)0.5>>>round(1.45,1)1.4>>>round(2.45,1)2.5>>>round(3.45,1)3.5>>>round(4.45,1)4.5>>>round(5.45,1)5.5>>>round(6.45,1)6.5>>>round(7.45,1)7.5>>>round(8.45,1)8.4>>>round(9.45,1)9.4接受的答案确认这是由float的二进制表示不准确引起的,这是合乎逻辑的。假设Ruby的float和Pyt

python - id(float) 的相同值

据我所知,Python中的一切都是对象,id()应该(我说得对吗?)为每个对象返回不同的数字。在我的例子中,id(1)返回4298178968,id(2)返回4298178944但我为所有float类型获取相同的值,id(1.1)返回4298189032,id(2.2)也返回4298189032等等。为什么所有浮点值都得到相同的id? 最佳答案 Python可以重用内存位置。当你运行时:id(1.1)您创建了一个浮点值,请求它的id(),然后Python再次删除该值,因为没有任何内容引用它。当您随后创建另一个float值时,Pyth

python "TypeError: ' numpy.float6 4' object cannot be interpreted as an integer"

importnumpyasnpforiinrange(len(x)):if(np.floor(N[i]/2)==N[i]/2):forjinrange(N[i]/2):pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)else:forjinrange((N[i]-1)/2):pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180

python - Pandas :ValueError:无法将 float NaN 转换为整数

我得到ValueError:cannotconvertfloatNaNtointeger如下:df=pandas.read_csv('zoom11.csv')df[['x']]=df[['x']].astype(int)“x”是csv文件中的一列,我无法在文件中发现任何floatNaN,而且我不明白错误或为什么会出现错误。当我将该列读取为字符串时,它的值类似于-1,0,1,...2000,对我来说都是非常好的int数字。当我将列读取为float时,就可以加载它了。然后它将值显示为-1.0,0.0等,仍然没有任何NaN-s我尝试在read_csv中使用error_bad_lines=Fa

python - 如何在尾部加一到 Python 中的 float ?

有没有一种简单直接的方法可以在Python中的float处添加“1”?我的意思是:ifa==0.0143:a=plus(a)asserta==0.0144defplus(a):sa=str(a)index=sa.find('.')ifindex这不是我想要的,因为它给了我0.0144000000001。 最佳答案 正如您所注意到的,并不是所有的十进制数都可以精确地表示为float:>>>Decimal(0.1)Decimal('0.100000000000000005551115123125782702118158340454101