python - Pandas cut,如何标记正确的开放端点?

标签 python pandas

如何使用 pd.cut 获取正确的开放端点以映射到标签?例如下面的代码片段, 仅显示区间而不是标签(例如“[10000000.0, 50000000.0)”而不是“100 亿美元到 500 亿美元”)?

import pandas as pd
import numpy as np

breaks = [0, 1000000, 5000000, 10000000, 50000000]  # actual values are in millions
labels = [
    'under $1 billion', 
    '$1 billion - $5 billion', 
    '$5 billion - $10 billion', 
    '$10 billion to $50 billion', 
    'over $50 billion'
]
interval = pd.IntervalIndex.from_breaks(breaks, closed='left')

df = pd.DataFrame({'value': np.random.randint(10000, 50000000, 20)})
df['Asset Size'] = pd.cut(df['value'], interval, labels=labels, right=False )

最佳答案

您实际上将中断用作 pd.cut 中的垃圾箱。无需使用pd.IntervalIndex

breaks = [0, 1000000, 5000000, 10000000, 50000000, np.inf]  # actual values are in millions
labels = [
    'under $1 billion', 
    '\$1 billion - $5 billion', 
    '\$5 billion - $10 billion', 
    '\$10 billion - $50 billion', 
    'over $50 billion']

df = pd.DataFrame({'value': np.random.randint(0, 50000000, 20)})
df['Asset Size'] = pd.cut(df['value'], bins = breaks, labels=labels, right=False)

\ 是以 $ 符号开头的字符串的转义,您还需要添加 np.inf 来表示任何内容超过 500 亿。

关于python - Pandas cut,如何标记正确的开放端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624454/

相关文章:

python - 从列表中删除字符串

python - Python List List 切片列表

Python错误: list index out of range

python - 何时使用 iloc 和 loc 作为 bool 值

python - 尽管索引匹配,但 pd.IndexSlice 的 pd.Series 赋值会导致 NaN 值

python - Pandas 识别的所有 dtypes 是什么?

python - 比较卡住集时如何使用 Lambda 函数找到精确的字符串匹配?

python - 了解 TfidfVectorizer 输出

python - 使用 F 对象切换查询集中的 boolean 字段

python - 如何在 Pandas 的时间序列图上绘制垂直线?