熊猫格式列为货币

Dan*_*ty2 1 python-3.x pandas seaborn

给定以下数据框:

import pandas as pd
df = pd.DataFrame(
        {'A':['A','B','C','D'],
         'C':[12355.00,12555.67,640.00,7000]
        })
df

    A   C
0   A   12355.00
1   B   12555.67
2   C   640.00
3   D   7000.00
Run Code Online (Sandbox Code Playgroud)

我想像这样将价值转换成千美元的美元:

    A   C
0   A   $12.3K
1   B   $12.5K
2   C    $0.6K
3   D    $7.0K
Run Code Online (Sandbox Code Playgroud)

我需要做的第二件事是以某种方式将它们放入Seaborn热图,该图仅接受浮点数和整数。有关热图方面的更多信息,请参见此处

我假设一旦将浮点数转换为货币,它们将采用对象格式,但我希望可以解决这一问题。

提前致谢!

小智 9

    def format(x):
        return "${:.1f}K".format(x/1000)


    df = pd.DataFrame(
        {'A':['A','B','C','D'],
         'C':[12355.00,12555.67,640.00,7000]
        })

    df['C'] = df['C'].apply(format)

    print(df)
Run Code Online (Sandbox Code Playgroud)


cha*_*Rak 7

或者您可以使用lambda 函数f 字符串来实现更短的语法

df['C'] = df['C'].map(lambda x: f"${x/1000:.1f}k")
Run Code Online (Sandbox Code Playgroud)


小智 6

或者您可以使用lambda函数来缩短语法

df['C'] = df['C'].apply(lambda x: "${:.1f}k".format((x/1000)))
Run Code Online (Sandbox Code Playgroud)

  • 欢迎使用 stackoverflow。这个答案会通过一些解释得到加强。请参阅 https://stackoverflow.com/help/how-to-answer (2认同)