【问题标题】:Pandas Series/Dataframe: Format string numbers with commas as Thousands Separators熊猫系列/数据框:用逗号格式化字符串数字作为千位分隔符
【发布时间】:2022-01-16 13:58:42
【问题描述】:

假设我有以下系列目前是对象类型:

s = {'A': "Hello", 'B': "593753", 'C': "16.8|", "D" : np.nan, "E":"%"}
s = pd.Series(data=s, index=['A', 'B', 'C',"D","E"])

我想使用逗号作为千位分隔符格式化数字。

我使用以下方法转换了系列:

s2 = pd.to_numeric(s, errors="coerce")

这当然会将 dtype 更改为 float。将系列转换回对象会再次删除逗号。

有没有办法格式化存储为字符串的数字,以便它们有逗号作为千位分隔符? 最后,该系列必须是对象类型,因为我需要能够使用 df.str.contains()

在系列中搜索“,”

【问题讨论】:

标签: python pandas


【解决方案1】:

使用 apply lambda 的解决方案

import pandas as pd
import numpy as np

def format_float(x):
    try:
       flt = float(x)
       return "{:,}".format(flt)
    except:
       return x

s = {'A': "Hello", 'B': "593753", 'C': "16.8|", "D" : np.nan, "E":"%"}
s = pd.Series(data=s, index=['A', 'B', 'C',"D","E"])

s2 = s.apply(lambda x: format_float(x))

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多