gpt4 book ai didi

python - 使用字典映射将格式应用于 Dataframe 中的每一列

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:11 29 4
gpt4 key购买 nike

问题设置

import pandas as pd
df = pd.DataFrame(data={'Currency': {0: 111.23, 1: 321.23},
'Int': {0: 23, 1: 3},
'Rate': {0: 0.03030, 1: 0.09840}}
)

产生下面的DataFrame

   Currency  Int    Rate
0 111.23 23 0.0303
1 321.23 3 0.0984

我想使用如下的字典对数据框中的每一列应用非常具体的格式:

format_mapping={'Currency': '${:,.2f}', 'Int': '{:,.0f}', 'Rate': '{:.2f}%'}

我知道我可以将 applymap 用于多列或应用于单列:

#All columns
df = df.applymap('{:.2f}%'.format)
#Specific columns
df['Rate'] = df['Rate'].apply('{:.2f}%'.format)

问题

如何遍历数据框中的每一列并使用字典应用格式,其中 dict keycolumnvaluestring 格式吗?

最终结果看起来像这样(忽略现在百分比没有乘以 100 的事实)

  Currency Int   Rate
0 $111.23 23 0.03%
1 $321.23 3 0.10%

最佳答案

最简单的方法是遍历format_mapping 字典,然后在列(由键表示)上应用由 表示的格式。示例 -

for key, value in format_mapping.items():
df[key] = df[key].apply(value.format)

演示 -

In [62]: df = pd.DataFrame(data={'Currency': {0: 111.23, 1: 321.23},
....: 'Int': {0: 23, 1: 3},
....: 'Rate': {0: 0.03030, 1: 0.09840}}
....: )

In [63]:

In [63]: format_mapping={'Currency': '${:,.2f}', 'Int': '{:,.0f}', 'Rate': '{:.2f}%'}

In [64]: for key, value in format_mapping.items():
....: df[key] = df[key].apply(value.format)
....:

In [65]: df
Out[65]:
Currency Int Rate
0 $111.23 23 0.03%
1 $321.23 3 0.10%

关于python - 使用字典映射将格式应用于 Dataframe 中的每一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744997/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com