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)
或者您可以使用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)