为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改excel电子表格中某些列的数字格式?

如何更改excel电子表格中某些列的数字格式?

慕仙森 2022-03-09 20:11:17
我想删除美元符号格式,$###,##0.00并将其替换为#,##0.00数字格式。我尝试更改工作表中一个单元格的格式,但我不知道它是否在做任何事情,因为文件中没有任何变化。wb = openpyxl.load_workbook('example.xlsx')sheet = wb['example']sheet('E7').number_format = '#,##0.00'我预计输出会将 E7 的值从$380.00更改为380.00,但我正在接收TypeError: 'Worksheet' object is not callable并且文件没有发生任何事情。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

对于单个单元格:


import re

f_clean = lambda x: re.sub('[$\-,\|]', '', x)

f_float = lambda x: float(x) if x!='' else np.NaN


print(f_float(f_clean('$10,000.00')))

# 10000.0


对于整个列:


# Here's a solution I use for large datasets:


import re


def lookup_money(s):

    """

    This is an extremely fast approach to parsing currency to floats.

    For large data, the same currencies are often repeated. Rather than

    re-parse these, we store all unique values, parse them, and

    use a lookup to convert all figures.

    (Should be 10X faster than without lookup dict)

    """

    f_clean = lambda x: re.sub('[$\-,\|]', '', x)

    f_float = lambda x: float(x) if x!='' else np.NaN

    currencies = {curr:f_float(f_convert(curr)) for curr in s.unique()}

    return s.map(currencies)


# apply to some df as such:

# df['curr'] = df['curr'].apply(lookup_money)


查看完整回答
反对 回复 2022-03-09
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信