pandasデータフレームに4.11889000e + 11のような値を持つaccountnumberという列があります。科学表記法を抑制し、値を4118890000に変換します。次の方法を試しました。うまくいかない。
df = pd.read_csv(data.csv)
pd.options.display.float_format = '{:,.3f}'.format
お勧めしてください。
アカウント番号の指数表記はデータファイルから取得する必要があると思います。完全なアカウント番号で小さなcsvを作成すると、pandasはそれらを整数として解釈します。
acct_num
0 4118890000
1 9876543210
df['acct_num'].dtype
Out[51]: dtype('int64')
ただし、csvのアカウント番号が指数表記で表されている場合、pandasはfloatとして読み取ります。
acct_num
0 4.118890e+11
1 9.876543e+11
df['acct_num'].dtype
Out[54]: dtype('float64')
2つのオプションがあります。まず、csvを作成するプロセスを修正して、アカウント番号が正しく書き出されるようにします。 2つ目は、acct_num列のデータ型を整数に変更することです。
df['acct_num'] = df['acct_num'].astype('int64')
df
Out[66]:
acct_num
0 411889000000
1 987654321000
千の区切り文字「、」と口座番号の3つの小数は必要ありません。
代わりに次を使用してください。
pd.options.display.float_format = '{:.0f}'.format