如何自定义格式 pandas 整数列以逗号作为千位分隔符显示?
How do I custom format a pandas integer column to display with commas as thousands separators?
我有一个数据框列 GDP/year
来自一个关于几年自杀的数据集。此列的数据类型当前是对象(字符串),但我希望它是整数。
值以逗号分隔,因此我无法直接将它们转换为整数。我尝试删除字符串中的逗号,存储为整数,然后我再次引入逗号,但它的类型恢复为对象。
数据集:https://www.kaggle.com/russellyates88/suicide-rates-overview-1985-to-2016
# convert to int...
suicides[' gdp_for_year ($) '] = suicides[' gdp_for_year ($) '].str.replace(',','').astype(int)
# now reformat with commas as thousands separator...
suicides[' gdp_for_year ($) '] = suicides[' gdp_for_year ($) '].astype(int).apply(lambda x: "{:,}".format(x))
# ...wanted to get dtype integer, but it's back to object
您正在将每个元素转换为字符串:"{:,}".format(x)
但我猜您想在 pandas DataFrame 中显示数字以默认显示逗号分隔符,对于 this 您可以这样做,但对于 float 数据类型:
pd.options.display.float_format = '{:,}'.format
如果你还想要 int 类型,你应该 pandas.io.formats.format.IntArrayFormatter
。
我有一个数据框列 GDP/year
来自一个关于几年自杀的数据集。此列的数据类型当前是对象(字符串),但我希望它是整数。
值以逗号分隔,因此我无法直接将它们转换为整数。我尝试删除字符串中的逗号,存储为整数,然后我再次引入逗号,但它的类型恢复为对象。
数据集:https://www.kaggle.com/russellyates88/suicide-rates-overview-1985-to-2016
# convert to int...
suicides[' gdp_for_year ($) '] = suicides[' gdp_for_year ($) '].str.replace(',','').astype(int)
# now reformat with commas as thousands separator...
suicides[' gdp_for_year ($) '] = suicides[' gdp_for_year ($) '].astype(int).apply(lambda x: "{:,}".format(x))
# ...wanted to get dtype integer, but it's back to object
您正在将每个元素转换为字符串:"{:,}".format(x)
但我猜您想在 pandas DataFrame 中显示数字以默认显示逗号分隔符,对于 this 您可以这样做,但对于 float 数据类型:
pd.options.display.float_format = '{:,}'.format
如果你还想要 int 类型,你应该 pandas.io.formats.format.IntArrayFormatter
。