草庐IT

img_float

全部标签

python - 在 Pandas 中查找类型为 float 或特定类型的所有数据框列?

我有一个数据框df,它有一些float64类型的列,而其他的则是对象。由于混合性质,我不能使用df.fillna('unknown')#gettingerror"ValueError:couldnotconvertstringtofloat:"因为错误发生在类型为float64的列上(多么误导的错误消息!)所以我希望我可以做类似的事情forcolindf.columns[]:df[col]=df[col].fillna("unknown")所以我的问题是是否有任何这样的过滤器表达式可以与df.columns一起使用?我想,或者,不那么优雅,我可以这样做:forcolindf.colum

python - 从 float 中删除尾随 '.0'

我正在寻找一种将数字转换为字符串格式的方法,删除任何多余的'.0'输入数据是float和字符串的混合体。期望的输出:0-->'0'0.0-->'0'0.1-->'0.1'1.0-->'1'我想出了以下生成器表达式,但我想知道是否有更快的方法:(str(i).rstrip('.0')ifielse'0'foriinlst)真值检查是为了防止0变成空字符串。编辑:我现在或多或少可以接受的解决方案是:('%d'%iifi==int(i)else'%s'%iforiinlst)在python中没有优雅的方式来处理这个(相当简单的)案例,这似乎很奇怪。 最佳答案

python - 将 timedelta 转换为 float

我从两个日期时间的减​​法中得到了一个timedelta对象。我需要这个值作为float进行进一步计算。我发现的所有内容都可以使用float进行计算,但是结果仍然是一个timedelta对象。time_d=datetime_1-datetime_2time_d_float=float(time_d)不工作。 最佳答案 您可以使用total_seconds方法:time_d_float=time_d.total_seconds() 关于python-将timedelta转换为float,我

python - 将ndarray从float64转换为整数

我在python中有一个ndarray,其dtype为float64。我想将数组转换为整数数组。我该怎么做?int()不起作用,因为它说它无法将其转换为标量。更改dtype字段本身显然不起作用,因为实际字节没有改变。我似乎在Google或文档中找不到任何内容-最好的方法是什么? 最佳答案 使用.astype。>>>a=numpy.array([1,2,3,4],dtype=numpy.float64)>>>aarray([1.,2.,3.,4.])>>>a.astype(numpy.int64)array([1,2,3,4])见do

python - RandomForestClassfier.fit() : ValueError: could not convert string to float

Given是一个简单的CSV文件:A,B,CHello,Hi,0Hola,Bueno,1显然,真实的数据集远比这个复杂,但是这个重现了错误。我正在尝试为它构建一个随机森林分类器,如下所示:cols=['A','B','C']col_types={'A':str,'B':str,'C':int}test=pd.read_csv('test.csv',dtype=col_types)train_y=test['C']==1train_x=test[cols]clf_rf=RandomForestClassifier(n_estimators=50)clf_rf.fit(train_x,tr

python - 在 numpy 数组中格式化 float

这个问题在这里已经有了答案:Pretty-printaNumPyarraywithoutscientificnotationandwithgivenprecision(14个回答)关闭2年前.如果我有一个这样的numpy数组:[2.15295647e+01,8.12531501e+00,3.97113829e+00,1.00777250e+01]我怎样才能移动小数点并格式化数字,所以我最终得到一个像这样的numpy数组:[21.53,8.13,3.97,10.08]np.around(a,decimals=2)只给我[2.15300000e+01,8.13000000e+00,3.97

python - 将pandas DataFrame中带逗号的数字字符串转换为 float

我有一个DataFrame,其中包含作为千位标记的逗号字符串形式的数字。我需要将它们转换为float。a=[['1,200','4,200'],['7,000','-0.03'],['5','0']]df=pandas.DataFrame(a)我猜我需要使用locale.atof。确实df[0].apply(locale.atof)按预期工作。我得到了一系列的花车。但是当我将它应用到DataFrame时,我得到了一个错误。df.apply(locale.atof)TypeError:("cannotconverttheseriesto",u'occurredatindex0')和df[

python - float64 与 Pandas to_csv

我正在读取带有如下float的CSV:Bob,0.085Alice,0.005并导入数据框,并将此数据框写入新位置df=pd.read_csv(orig)df.to_csv(pandasfile)现在这个pandasfile有:Bob,0.085000000000000006Alice,0.0050000000000000001会发生什么?也许我必须转换为其他类型,例如float32或其他类型?我正在使用pandas0.9.0和numpy1.6.2。 最佳答案 正如评论中提到的,这是一个一般的浮点问题。但是你可以使用to_csv的f

python - 如何使用 python numpy.savetxt 将字符串和 float 写入 ASCII 文件?

我有一组同时包含字符串和float的列表,例如:importnumpyasnumNAMES=num.array(['NAME_1','NAME_2','NAME_3'])FLOATS=num.array([0.5,0.2,0.3])DAT=num.column_stack((NAMES,FLOATS))我想把这两个列表堆叠在一起,以列的形式写入一个文本文件;因此,我想使用numpy.savetxt(如果可能)来执行此操作。num.savetxt('test.txt',DAT,delimiter="")当我这样做时,我收到以下错误:>>>num.savetxt('test.txt',DA

Python float 到 int 的转换

基本上,我将float转换为整数,但我并不总是有预期值。这是我正在执行的代码:x=2.51print("---------251.0")y=251.0print(y)print(int(y))print("---------2.51*100")y=x*100print(y)print(int(y))print("---------2.51*1000/10")y=x*1000/10print(y)print(int(y))print("---------2.51*100*10/10")y=x*100*10/10print(y)print(int(y))x=4.02print("-----