python - 熊猫切割,如何标记正确的开放端点?
问题描述
如何获得正确的开放端点以映射到带有 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 亿的任何内容。
推荐阅读
- rust - 有没有办法让结构包含可能不再有效的引用?
- javascript - Javascript将字符串拆分为多维数组
- r - 将单行文件读入 R
- javascript - 单击 X 时关闭菜单
- stackexchange.redis - StackExchange.redis - Redis 批处理超时
- python - 可以使用 subprocess.Popen for python3.7 处理命令列表
- django - 我如何将 html 复选框值保存到 django 数据库
- xamarin.forms - Xamarin.Forms 在应用程序上启动或恢复时添加 4 位密码
- c# - 使用Linq获取组中除第一项之外的所有项目的总和?
- javascript - 从另一个网格视图文本框 asp.net 填充网格视图下拉