我已经为我的数据集估算了均值缺失值,但是通过此过程,我可以看到数量值以科学格式显示,尽管数据类型仍为float64。我使用了以下代码:
mean_value1=df1['amount'].mean()
df1['amount']=df1['amount'].fillna(mean_value1)
df1['start_balance']=df1['start_balance'].fillna(mean_value2)
mean_value3=df1['end_balance'].mean()
df1['end_balance']=df1['end_balance'].fillna(mean_value3)
df1 = df1.fillna(df1.mode().iloc[0])
df1.head()
缺失值已得到正确处理,但开始余额和结束余额的值均采用科学计数法。如何防止这种情况发生? 输出如下:
amount booking_date booking_text date_end_balance date_start_balance end_balance month start_balance tx_code
-60790.332082 2017-06-30 SEPA-Gutschrift 2017-06-30 2017-06-01 2.693179e+07 June-2017 2.652441e+07 166.0
-10.000000 2016-03-22 GEBUEHREN 2016-03-22 2016-02-22 3.589838e+06 March-2016 3.590838e+06 808.0
答案 0 :(得分:0)
如果您不希望四舍五入数字,可以更改数字在输出中的显示方式
import pandas as pd
df = pd.DataFrame(np.random.random(5)*10000000000, columns=['random'])
pd.set_option('display.float_format', lambda x: '%.0f' % x)
df
给出此输出
random
0 7591769472
1 78148991059
2 19880680453
3 1965830619
4 39390983843
代替此输出
random
0 6.704323e+10
1 6.714734e+10
2 8.447027e+09
3 3.051957e+10
4 1.481439e+09
将%.0f
更改为要从数字中看到的小数位数,所以两个将0更改为2,将0更改为3,以此类推。
您也可以使用df.apply(lambda x: '%.0f' % x, axis=1)
答案 1 :(得分:0)
df1['amount'] = df1['amount'].astype('int64')
df1['start_balance'] = df1['start_balance'].astype('int64')
这对我很好!在另一个步骤中,但仍然有效