Saya ingin menampilkan kerangka data panda dengan format yang diberikan menggunakan print()
dan IPython display()
. Sebagai contoh:
df = pd.DataFrame([123.4567, 234.5678, 345.6789, 456.7890],
index=['foo','bar','baz','quux'],
columns=['cost'])
print df
cost
foo 123.4567
bar 234.5678
baz 345.6789
quux 456.7890
Saya ingin entah bagaimana memaksa ini ke dalam pencetakan
cost
foo $123.46
bar $234.57
baz $345.68
quux $456.79
tanpa harus memodifikasi data itu sendiri atau membuat salinan, cukup ubah cara itu ditampilkan.
Bagaimana saya bisa melakukan ini?
cost
satu-satunya kolom float, atau adakah kolom float lain yang tidak boleh diformat$
?Jawaban:
hasil panen
tetapi ini hanya berfungsi jika Anda ingin setiap pelampung diformat dengan tanda dolar.
Jika tidak, jika Anda ingin pemformatan dolar hanya untuk beberapa float, maka saya pikir Anda harus memodifikasi pra-dataframe (mengonversi float tersebut menjadi string):
hasil panen
sumber
with pd.option_context('display.float_format', '${:,.2f}'.format'):
'
sebelum tanda kurung penutup pada komentar @AndreHolzner; jika tidak, itu berfungsi seperti pesona!Jika Anda tidak ingin mengubah kerangka data, Anda bisa menggunakan formatter khusus untuk kolom itu.
hasil panen
sumber
pd.options.display.float_format = '${:,.2f}'.format
Pada Pandas 0.17 sekarang ada sistem gaya yang pada dasarnya memberikan pandangan diformat dari DataFrame menggunakan string format Python :
yang menampilkan
Ini adalah objek tampilan; DataFrame itu sendiri tidak mengubah pemformatan, tetapi pembaruan dalam DataFrame tercermin dalam tampilan:
Namun tampaknya ada beberapa keterbatasan:
Menambahkan baris dan / atau kolom baru di tempat tampaknya menyebabkan ketidakkonsistenan dalam tampilan gaya (tidak menambahkan label baris / kolom):
yang terlihat ok tapi:
Pemformatan hanya berfungsi untuk nilai, bukan entri indeks:
sumber
Mirip dengan unutbu di atas, Anda juga dapat menggunakan
applymap
sebagai berikut:sumber
df.to_csv()
untuk memastikan semua kolom dalam.csv
file saya memiliki "lebar digit" yang sama. Terima kasih!Saya suka menggunakan pandas.apply () dengan format python ().
Selain itu, dapat dengan mudah digunakan dengan beberapa kolom ...
sumber
Anda juga dapat mengatur lokal ke wilayah Anda dan mengatur float_format untuk menggunakan format mata uang. Ini secara otomatis akan menetapkan tanda $ untuk mata uang di AS.
sumber
ringkasan:
sumber